Class ClientStanzaHandler

  • Direct Known Subclasses:
    WebSocketClientStanzaHandler

    public class ClientStanzaHandler
    extends StanzaHandler
    Handler of XML stanzas sent by clients connected directly to the server. Received packet will have their FROM attribute overridden to avoid spoofing.

    By default, the hostname specified in the stream header sent by clients will not be validated. When validated the TO attribute of the stream header has to match the server name or a valid subdomain. If the value of the 'to' attribute is not valid then a host-unknown error will be returned. To enable the validation set the system property xmpp.client.validate.host to true.

    Author:
    Gaston Dombiak
    • Method Detail

      • processUnknowPacket

        protected boolean processUnknowPacket​(org.dom4j.Element doc)
      • getNamespace

        protected org.dom4j.Namespace getNamespace()
      • validateHost

        protected boolean validateHost()
      • validateJIDs

        protected boolean validateJIDs()
      • createSession

        protected void createSession​(String serverName,
                                     org.xmlpull.v1.XmlPullParser xpp,
                                     Connection connection)
                              throws org.xmlpull.v1.XmlPullParserException
        Throws:
        org.xmlpull.v1.XmlPullParserException
      • processIQ

        protected void processIQ​(org.xmpp.packet.IQ packet)
                          throws UnauthorizedException
        Description copied from class: StanzaHandler
        Process the received IQ packet. Registered PacketInterceptor will be invoked before and after the packet was routed.

        Subclasses may redefine this method for different reasons such as modifying the sender of the packet to avoid spoofing, rejecting the packet or even process the packet in another thread.

        Overrides:
        processIQ in class StanzaHandler
        Parameters:
        packet - the received packet.
        Throws:
        UnauthorizedException - if service is not available to sender.
      • processPresence

        protected void processPresence​(org.xmpp.packet.Presence packet)
                                throws UnauthorizedException
        Description copied from class: StanzaHandler
        Process the received Presence packet. Registered PacketInterceptor will be invoked before and after the packet was routed.

        Subclasses may redefine this method for different reasons such as modifying the sender of the packet to avoid spoofing, rejecting the packet or even process the packet in another thread.

        Overrides:
        processPresence in class StanzaHandler
        Parameters:
        packet - the received packet.
        Throws:
        UnauthorizedException - if service is not available to sender.
      • processMessage

        protected void processMessage​(org.xmpp.packet.Message packet)
                               throws UnauthorizedException
        Description copied from class: StanzaHandler
        Process the received Message packet. Registered PacketInterceptor will be invoked before and after the packet was routed.

        Subclasses may redefine this method for different reasons such as modifying the sender of the packet to avoid spoofing, rejecting the packet or even process the packet in another thread.

        Overrides:
        processMessage in class StanzaHandler
        Parameters:
        packet - the received packet.
        Throws:
        UnauthorizedException - if service is not available to sender.