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();
}