You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2011/01/02 21:39:58 UTC

svn commit: r1054467 - in /mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp: modules/core/base/handler/ protocol/worker/ server/response/

Author: ngn
Date: Sun Jan  2 20:39:58 2011
New Revision: 1054467

URL: http://svn.apache.org/viewvc?rev=1054467&view=rev
Log:
TLS supported for incoming S2S connections

Modified:
    mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/StreamStartHandler.java
    mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java
    mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java
    mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java

Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/StreamStartHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/StreamStartHandler.java?rev=1054467&r1=1054466&r2=1054467&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/StreamStartHandler.java (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/StreamStartHandler.java Sun Jan  2 20:39:58 2011
@@ -151,14 +151,12 @@ public class StreamStartHandler implemen
             // RFC3920: 'from' attribute SHOULD be used by the receiving entity
             String fromValue = stanza.getAttributeValue("from");
             if (fromValue != null) {
-                EntityImpl entity = null;
                 try {
-                    entity = EntityImpl.parse(fromValue);
+                    EntityImpl.parse(fromValue);
                 } catch (EntityFormatException e) {
                     return new ResponseStanzaContainerImpl(ServerErrorResponses.getInstance().getStreamError(
                             StreamErrorCondition.INVALID_FROM, sessionContext.getXMLLang(),
                             "could not parse incoming stanza's FROM attribute", null));
-
                 }
             }
             

Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java?rev=1054467&r1=1054466&r2=1054467&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java Sun Jan  2 20:39:58 2011
@@ -22,6 +22,7 @@ package org.apache.vysper.xmpp.protocol.
 import org.apache.vysper.xmpp.modules.core.base.handler.StreamStartHandler;
 import org.apache.vysper.xmpp.modules.core.base.handler.XMLPrologHandler;
 import org.apache.vysper.xmpp.modules.core.sasl.handler.AbstractSASLHandler;
+import org.apache.vysper.xmpp.modules.extension.xep0220_server_dailback.DbResultHandler;
 import org.apache.vysper.xmpp.protocol.ResponseWriter;
 import org.apache.vysper.xmpp.protocol.SessionStateHolder;
 import org.apache.vysper.xmpp.protocol.StanzaHandler;
@@ -49,6 +50,8 @@ public class EncryptedProtocolWorker ext
             return true;
         if (stanzaHandler instanceof XMLPrologHandler)
             return true; // PSI client sends that. 
+        if (sessionContext.isServerToServer() && stanzaHandler instanceof DbResultHandler)
+            return true;
         ResponseWriter.writeUnsupportedStanzaError(sessionContext);
         return false;
     }

Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java?rev=1054467&r1=1054466&r2=1054467&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java Sun Jan  2 20:39:58 2011
@@ -45,9 +45,9 @@ public class StartedProtocolWorker exten
             StanzaHandler stanzaHandler) {
         if (stanzaHandler instanceof StartTLSHandler)
             return true;
-        if (stanzaHandler instanceof DbVerifyHandler)
+        if (sessionContext.isServerToServer() && stanzaHandler instanceof DbVerifyHandler)
             return true;
-        if (stanzaHandler instanceof DbResultHandler)
+        if (sessionContext.isServerToServer() && stanzaHandler instanceof DbResultHandler)
             return true;
         ResponseWriter.writeUnsupportedStanzaError(sessionContext);
         return false;

Modified: mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java?rev=1054467&r1=1054466&r2=1054467&view=diff
==============================================================================
--- mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java (original)
+++ mina/vysper/branches/s2s/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java Sun Jan  2 20:39:58 2011
@@ -70,28 +70,21 @@ public class ServerResponses {
     }
 
     public Stanza getStreamOpenerForServerAcceptor(Entity from, XMPPVersion version, SessionContext sessionContext) {
-        Stanza innerFeatureStanza;
+        StanzaBuilder featureBuilder = startFeatureStanza();
         if (sessionContext.getState() == SessionState.INITIATED) {
-            StanzaBuilder stanzaBuilder = startFeatureStanza();
-            stanzaBuilder.startInnerElement("dialback", NamespaceURIs.URN_XMPP_FEATURES_DIALBACK);
-            stanzaBuilder.endInnerElement();
-            innerFeatureStanza = stanzaBuilder.build();
-
-            //        else if (sessionContext.getState() == SessionState.ENCRYPTED)
-//            innerFeatureStanza = getFeaturesForAuthentication(sessionContext.getServerRuntimeContext()
-//                    .getServerFeatures().getAuthenticationMethods());
-//        else if (sessionContext.getState() == SessionState.AUTHENTICATED) {
-//            sessionContext.setIsReopeningXMLStream();
-//            innerFeatureStanza = getFeaturesForSession();
+            featureBuilder.startInnerElement("starttls", NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_TLS).endInnerElement();
+            featureBuilder.startInnerElement("dialback", NamespaceURIs.URN_XMPP_FEATURES_DIALBACK).endInnerElement();
+
+        } else if (sessionContext.getState() == SessionState.ENCRYPTED) {
+            featureBuilder.startInnerElement("dialback", NamespaceURIs.URN_XMPP_FEATURES_DIALBACK).endInnerElement();
         } else {
             throw new IllegalStateException("unsupported state for responding with stream opener");
         }
         
         StanzaBuilder stanzaBuilder = getStreamOpener(false, from, sessionContext.getXMLLang(), version,
-                sessionContext.getSessionId(), innerFeatureStanza);
-        if (sessionContext.getState() == SessionState.INITIATED) {
-            stanzaBuilder.declareNamespace("db", NamespaceURIs.JABBER_SERVER_DIALBACK);
-        }
+                sessionContext.getSessionId(), featureBuilder.build());
+
+        stanzaBuilder.declareNamespace("db", NamespaceURIs.JABBER_SERVER_DIALBACK);
         return stanzaBuilder.build();
     }