Class IQHandler
- java.lang.Object
-
- org.jivesoftware.openfire.container.BasicModule
-
- org.jivesoftware.openfire.handler.IQHandler
-
- All Implemented Interfaces:
ChannelHandler,Module
- Direct Known Subclasses:
AdHocCommandHandler,IQBindHandler,IQBlockingHandler,IQDiscoInfoHandler,IQDiscoItemsHandler,IQEntityTimeHandler,IQLastActivityHandler,IQMessageCarbonsHandler,IQMUCvCardHandler,IQOfflineMessagesHandler,IQPEPHandler,IQPEPOwnerHandler,IQPingHandler,IQPrivacyHandler,IQPrivateHandler,IQRegisterHandler,IQRosterHandler,IQSessionEstablishmentHandler,IQSharedGroupHandler,IQvCardHandler,IQVersionHandler
public abstract class IQHandler extends BasicModule implements ChannelHandler
Base class whose main responsibility is to handle IQ packets. Subclasses may only need to specify the IQHandlerInfo (i.e. name and namespace of the packets to handle) and actually handle the IQ packet. Simplifies creation of simple TYPE_IQ message handlers.- Author:
- Gaston Dombiak
-
-
Field Summary
Fields Modifier and Type Field Description protected PacketDelivererdelivererprotected SessionManagersessionManager
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract IQHandlerInfogetInfo()Returns the handler information to help generically handle IQ packets.abstract org.xmpp.packet.IQhandleIQ(org.xmpp.packet.IQ packet)Handles the received IQ packet.voidinitialize(XMPPServer server)Initializes the basic module.booleanperformNoSuchUserCheck()RFC 6121 8.5.1.voidprocess(org.xmpp.packet.Packet packet)Process an XMPP packet.-
Methods inherited from class org.jivesoftware.openfire.container.BasicModule
destroy, getName, start, stop
-
-
-
-
Field Detail
-
deliverer
protected PacketDeliverer deliverer
-
sessionManager
protected SessionManager sessionManager
-
-
Constructor Detail
-
IQHandler
public IQHandler(String moduleName)
Create a basic module with the given name.- Parameters:
moduleName- The name for the module or null to use the default
-
-
Method Detail
-
performNoSuchUserCheck
public boolean performNoSuchUserCheck()
RFC 6121 8.5.1. "No Such User" specifies how the server must respond to a request made against a non-existing user. The abstract IQ Handler plugin can act accordingly, but allows implementations to override this behavior. By default, Openfire will perform a non-existing user check and act according to the RFC 6121. Subclasses can disable this behavior by overriding this method, and returning 'false'.- Returns:
- 'true' if the Abstract IQ Handler implementation should detect if the IQ request is made against a non-existing user and return an error.
- See Also:
- RFC 6121 8.5.1. "No Such User", OF-880
-
process
public void process(org.xmpp.packet.Packet packet) throws PacketExceptionDescription copied from interface:ChannelHandlerProcess an XMPP packet.- Specified by:
processin interfaceChannelHandler- Parameters:
packet- a packet to process.- Throws:
PacketException- thrown if the packet is malformed (results in the sender's session being shutdown).
-
handleIQ
public abstract org.xmpp.packet.IQ handleIQ(org.xmpp.packet.IQ packet) throws UnauthorizedExceptionHandles the received IQ packet.- Parameters:
packet- the IQ packet to handle.- Returns:
- the response to send back.
- Throws:
UnauthorizedException- if the user that sent the packet is not authorized to request the given operation.
-
getInfo
public abstract IQHandlerInfo getInfo()
Returns the handler information to help generically handle IQ packets. IQHandlers that aren't local server iq handlers (e.g. chatbots, transports, etc) returnnull.- Returns:
- The IQHandlerInfo for this handler
-
initialize
public void initialize(XMPPServer server)
Description copied from class:BasicModuleInitializes the basic module.
Inheriting classes that choose to override this method MUST call this initialize() method before accessing BasicModule resources.
- Specified by:
initializein interfaceModule- Overrides:
initializein classBasicModule- Parameters:
server- the server hosting this module.
-
-