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/25 22:01:32 UTC
svn commit: r1063460 - in /mina/vysper/branches/xep0114:
examples/embedded-war/src/main/java/org/apache/vysper/xmpp/exemples/embeddedwar/
server/admin-console/src/test/java/org/apache/vysper/console/
server/core/src/main/java/org/apache/vysper/mina/ se...
Author: ngn
Date: Tue Jan 25 21:01:31 2011
New Revision: 1063460
URL: http://svn.apache.org/viewvc?rev=1063460&view=rev
Log:
Make endpoints aware of what type of sessions they will be serving and ensure only that type of stanzas are allowed
Added:
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/AbstractTCPEndpoint.java
- copied, changed from r1062271, mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/C2SEndpoint.java
Removed:
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java
Modified:
mina/vysper/branches/xep0114/examples/embedded-war/src/main/java/org/apache/vysper/xmpp/exemples/embeddedwar/VysperListener.java
mina/vysper/branches/xep0114/server/admin-console/src/test/java/org/apache/vysper/console/ServerMain.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/S2SEndpoint.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/stanzasession/StanzaSessionContext.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/stanzasession/StanzaSessionFactory.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/StreamStartHandler.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/XMPPCoreStanzaHandler.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/NamespaceURIs.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ProtocolWorker.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java
mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/stanza/XMPPCoreStanza.java
mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/IQHandlerTestCase.java
mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandlerRelayTestCase.java
mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/starttls/handler/StartTLSHandlerTestCase.java
mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java
mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java
mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/ServerMain.java
mina/vysper/branches/xep0114/server/extensions/websockets/src/examples/java/org/apache/vysper/xmpp/extension/websockets/DemoServer.java
mina/vysper/branches/xep0114/server/extensions/websockets/src/examples/java/org/apache/vysper/xmpp/extension/websockets/ServerMain.java
mina/vysper/branches/xep0114/server/extensions/websockets/src/main/java/org/apache/vysper/xmpp/extension/websockets/WebSocketBackedSessionContext.java
mina/vysper/branches/xep0114/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/ServerMain.java
mina/vysper/branches/xep0114/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/TestSessionContext.java
mina/vysper/branches/xep0114/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/demo/pubsub/client/ServerMain.java
mina/vysper/branches/xep0114/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java
mina/vysper/branches/xep0114/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java
mina/vysper/branches/xep0114/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/ServerMain.java
Modified: mina/vysper/branches/xep0114/examples/embedded-war/src/main/java/org/apache/vysper/xmpp/exemples/embeddedwar/VysperListener.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/examples/embedded-war/src/main/java/org/apache/vysper/xmpp/exemples/embeddedwar/VysperListener.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/examples/embedded-war/src/main/java/org/apache/vysper/xmpp/exemples/embeddedwar/VysperListener.java (original)
+++ mina/vysper/branches/xep0114/examples/embedded-war/src/main/java/org/apache/vysper/xmpp/exemples/embeddedwar/VysperListener.java Tue Jan 25 21:01:31 2011
@@ -3,7 +3,7 @@ package org.apache.vysper.xmpp.exemples.
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
-import org.apache.vysper.mina.TCPEndpoint;
+import org.apache.vysper.mina.C2SEndpoint;
import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
@@ -34,7 +34,7 @@ public class VysperListener implements S
}
server = new XMPPServer(domain);
- server.addEndpoint(new TCPEndpoint());
+ server.addEndpoint(new C2SEndpoint());
server.setStorageProviderRegistry(providerRegistry);
server.setTLSCertificateInfo(sce.getServletContext().getResourceAsStream("WEB-INF/bogus_mina_tls.cert"), "boguspw");
Modified: mina/vysper/branches/xep0114/server/admin-console/src/test/java/org/apache/vysper/console/ServerMain.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/admin-console/src/test/java/org/apache/vysper/console/ServerMain.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/admin-console/src/test/java/org/apache/vysper/console/ServerMain.java (original)
+++ mina/vysper/branches/xep0114/server/admin-console/src/test/java/org/apache/vysper/console/ServerMain.java Tue Jan 25 21:01:31 2011
@@ -20,15 +20,13 @@
package org.apache.vysper.console;
import java.io.File;
-import java.io.FileNotFoundException;
import java.util.Arrays;
-import org.apache.vysper.mina.TCPEndpoint;
+import org.apache.vysper.mina.C2SEndpoint;
import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
import org.apache.vysper.xmpp.addressing.EntityImpl;
-import org.apache.vysper.xmpp.authorization.AccountCreationException;
import org.apache.vysper.xmpp.authorization.AccountManagement;
import org.apache.vysper.xmpp.modules.extension.xep0049_privatedata.PrivateDataModule;
import org.apache.vysper.xmpp.modules.extension.xep0050_adhoc_commands.AdhocCommandsModule;
@@ -68,7 +66,7 @@ public class ServerMain {
}
XMPPServer server = new XMPPServer(domain);
- server.addEndpoint(new TCPEndpoint());
+ server.addEndpoint(new C2SEndpoint());
//server.addEndpoint(new StanzaSessionFactory());
server.setStorageProviderRegistry(providerRegistry);
Copied: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/AbstractTCPEndpoint.java (from r1062271, mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java)
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/AbstractTCPEndpoint.java?p2=mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/AbstractTCPEndpoint.java&p1=mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java&r1=1062271&r2=1063460&rev=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/TCPEndpoint.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/AbstractTCPEndpoint.java Tue Jan 25 21:01:31 2011
@@ -29,21 +29,30 @@ import org.apache.mina.transport.socket.
import org.apache.vysper.mina.codec.XMPPProtocolCodecFactory;
import org.apache.vysper.xmpp.server.Endpoint;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
/**
*
* @author The Apache MINA Project (dev@mina.apache.org)
*/
-public class TCPEndpoint implements Endpoint {
+public abstract class AbstractTCPEndpoint implements Endpoint {
private ServerRuntimeContext serverRuntimeContext;
- private int port = 5222;
+ private int port;
+
+ private SessionMode endpointType;
private SocketAcceptor acceptor;
private DefaultIoFilterChainBuilder filterChainBuilder;
+
+ public AbstractTCPEndpoint(int defaultPort, SessionMode endpointType) {
+ this.port = defaultPort;
+ this.endpointType = endpointType;
+ }
+
public DefaultIoFilterChainBuilder getFilterChainBuilder() {
return filterChainBuilder;
}
@@ -65,7 +74,7 @@ public class TCPEndpoint implements Endp
filterChainBuilder.addLast("loggingFilter", new StanzaLoggingFilter());
acceptor.setFilterChainBuilder(filterChainBuilder);
- XmppIoHandlerAdapter adapter = new XmppIoHandlerAdapter();
+ XmppIoHandlerAdapter adapter = new XmppIoHandlerAdapter(endpointType);
adapter.setServerRuntimeContext(serverRuntimeContext);
acceptor.setHandler(adapter);
Added: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/C2SEndpoint.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/C2SEndpoint.java?rev=1063460&view=auto
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/C2SEndpoint.java (added)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/C2SEndpoint.java Tue Jan 25 21:01:31 2011
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.vysper.mina;
+
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
+
+
+/**
+ * Endpoint used for server-to-servr (s2s) connections
+ *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ */
+public class C2SEndpoint extends AbstractTCPEndpoint {
+
+ public C2SEndpoint() {
+ super(5222, SessionMode.CLIENT_2_SERVER);
+ }
+
+}
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/MinaBackedSessionContext.java Tue Jan 25 21:01:31 2011
@@ -55,8 +55,8 @@ public class MinaBackedSessionContext ex
protected CloseFuture closeFuture;
public MinaBackedSessionContext(ServerRuntimeContext serverRuntimeContext, SessionStateHolder sessionStateHolder,
- IoSession minaSession) {
- super(serverRuntimeContext, sessionStateHolder);
+ IoSession minaSession, SessionMode sessionMode) {
+ super(serverRuntimeContext, sessionStateHolder, sessionMode);
this.minaSession = minaSession;
closeFuture = minaSession.getCloseFuture();
closeFuture.addListener(this);
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/S2SEndpoint.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/S2SEndpoint.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/S2SEndpoint.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/S2SEndpoint.java Tue Jan 25 21:01:31 2011
@@ -19,16 +19,17 @@
*/
package org.apache.vysper.mina;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
+
/**
* Endpoint used for server-to-servr (s2s) connections
*
* @author The Apache MINA Project (dev@mina.apache.org)
*/
-public class S2SEndpoint extends TCPEndpoint {
+public class S2SEndpoint extends AbstractTCPEndpoint {
public S2SEndpoint() {
- setPort(5269);
+ super(5269, SessionMode.SERVER_2_SERVER);
}
-
}
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/mina/XmppIoHandlerAdapter.java Tue Jan 25 21:01:31 2011
@@ -29,6 +29,7 @@ import org.apache.vysper.xmpp.protocol.S
import org.apache.vysper.xmpp.protocol.StreamErrorCondition;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
import org.apache.vysper.xmpp.server.response.ServerErrorResponses;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.slf4j.Logger;
@@ -47,8 +48,14 @@ public class XmppIoHandlerAdapter implem
final Logger logger = LoggerFactory.getLogger(XmppIoHandlerAdapter.class);
+ private SessionMode endpointType;
+
private ServerRuntimeContext serverRuntimeContext;
+ public XmppIoHandlerAdapter(SessionMode endpointType) {
+ this.endpointType = endpointType;
+ }
+
public void setServerRuntimeContext(ServerRuntimeContext serverRuntimeContext) {
this.serverRuntimeContext = serverRuntimeContext;
}
@@ -101,7 +108,8 @@ public class XmppIoHandlerAdapter implem
public void sessionCreated(IoSession ioSession) throws Exception {
SessionStateHolder stateHolder = new SessionStateHolder();
- SessionContext sessionContext = new MinaBackedSessionContext(serverRuntimeContext, stateHolder, ioSession);
+ SessionContext sessionContext = new MinaBackedSessionContext(serverRuntimeContext, stateHolder, ioSession, endpointType);
+
ioSession.setAttribute(ATTRIBUTE_VYSPER_SESSION, sessionContext);
ioSession.setAttribute(ATTRIBUTE_VYSPER_SESSIONSTATEHOLDER, stateHolder);
}
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/stanzasession/StanzaSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/stanzasession/StanzaSessionContext.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/stanzasession/StanzaSessionContext.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/stanzasession/StanzaSessionContext.java Tue Jan 25 21:01:31 2011
@@ -39,8 +39,8 @@ public class StanzaSessionContext extend
protected Queue<Stanza> stanzaQueue = new LinkedList<Stanza>();
- public StanzaSessionContext(ServerRuntimeContext serverRuntimeContext, SessionStateHolder sessionStateHolder) {
- super(serverRuntimeContext, sessionStateHolder);
+ public StanzaSessionContext(ServerRuntimeContext serverRuntimeContext, SessionStateHolder sessionStateHolder, SessionMode sessionMode) {
+ super(serverRuntimeContext, sessionStateHolder, sessionMode);
}
public StanzaWriter getResponseWriter() {
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/stanzasession/StanzaSessionFactory.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/stanzasession/StanzaSessionFactory.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/stanzasession/StanzaSessionFactory.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/stanzasession/StanzaSessionFactory.java Tue Jan 25 21:01:31 2011
@@ -23,6 +23,7 @@ import org.apache.vysper.xmpp.protocol.S
import org.apache.vysper.xmpp.server.Endpoint;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
/**
*
@@ -38,7 +39,7 @@ public class StanzaSessionFactory implem
public StanzaSession createNewSession() {
SessionStateHolder stateHolder = new SessionStateHolder();
stateHolder.setState(SessionState.INITIATED);
- StanzaSessionContext sessionContext = new StanzaSessionContext(serverRuntimeContext, stateHolder);
+ StanzaSessionContext sessionContext = new StanzaSessionContext(serverRuntimeContext, stateHolder, SessionMode.CLIENT_2_SERVER);
StanzaSession session = new StanzaSession(sessionContext);
return session;
}
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/StreamStartHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/StreamStartHandler.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/StreamStartHandler.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/StreamStartHandler.java Tue Jan 25 21:01:31 2011
@@ -34,6 +34,7 @@ import org.apache.vysper.xmpp.server.Ser
import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
import org.apache.vysper.xmpp.server.XMPPVersion;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
import org.apache.vysper.xmpp.server.response.ServerErrorResponses;
import org.apache.vysper.xmpp.server.response.ServerResponses;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -68,17 +69,6 @@ public class StreamStartHandler implemen
XMLElementVerifier xmlElementVerifier = stanza.getVerifier();
boolean jabberNamespace = NamespaceURIs.HTTP_ETHERX_JABBER_ORG_STREAMS.equals(stanza.getNamespaceURI());
- boolean clientCall = xmlElementVerifier.namespacePresent(NamespaceURIs.JABBER_CLIENT);
- boolean serverCall = xmlElementVerifier.namespacePresent(NamespaceURIs.JABBER_SERVER);
-
- // TODO is it better to derive c2s or s2s from the type of endpoint and verify the namespace here?
- if (clientCall && serverCall)
- serverCall = false; // silently ignore ambiguous attributes
- if (serverCall)
- sessionContext.setServerToServer();
- else
- sessionContext.setClientToServer();
-
if (sessionStateHolder.getState() != SessionState.INITIATED
&& sessionStateHolder.getState() != SessionState.ENCRYPTED
&& sessionStateHolder.getState() != SessionState.AUTHENTICATED) {
@@ -127,7 +117,7 @@ public class StreamStartHandler implemen
}
Stanza responseStanza = null;
- if (clientCall) {
+ if (sessionContext.isSessionMode(SessionMode.CLIENT_2_SERVER)) {
// RFC3920: 'to' attribute SHOULD be used by the initiating entity
String toValue = stanza.getAttributeValue("to");
if (toValue != null) {
@@ -147,7 +137,7 @@ public class StreamStartHandler implemen
}
responseStanza = new ServerResponses().getStreamOpenerForClient(sessionContext.getServerJID(),
responseVersion, sessionContext);
- } else if (serverCall) {
+ } else if (sessionContext.isSessionMode(SessionMode.SERVER_2_SERVER)) {
// RFC3920: 'from' attribute SHOULD be used by the receiving entity
String fromValue = stanza.getAttributeValue("from");
if (fromValue != null) {
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/XMPPCoreStanzaHandler.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/XMPPCoreStanzaHandler.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/XMPPCoreStanzaHandler.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/XMPPCoreStanzaHandler.java Tue Jan 25 21:01:31 2011
@@ -29,6 +29,7 @@ import org.apache.vysper.xmpp.protocol.S
import org.apache.vysper.xmpp.protocol.StreamErrorCondition;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
import org.apache.vysper.xmpp.server.response.ServerErrorResponses;
import org.apache.vysper.xmpp.stanza.IQStanzaType;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -100,7 +101,7 @@ public abstract class XMPPCoreStanzaHand
}
Entity to = stanza.getTo();
- if (sessionContext != null && sessionContext.isServerToServer() && to == null) {
+ if (sessionContext != null && sessionContext.isSessionMode(SessionMode.SERVER_2_SERVER) && to == null) {
// "to" MUST be present for jabber:server
return new ResponseStanzaContainerImpl(ServerErrorResponses.getStreamError(
StreamErrorCondition.IMPROPER_ADDRESSING, stanza.getXMLLang(), "missing to attribute", null));
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/NamespaceURIs.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/NamespaceURIs.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/NamespaceURIs.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/NamespaceURIs.java Tue Jan 25 21:01:31 2011
@@ -44,6 +44,8 @@ public class NamespaceURIs {
public static final String JABBER_CLIENT = "jabber:client";
+ public static final String JABBER_COMPONENT_ACCEPT = "jabber:component:accep";
+
public static final String JABBER_SERVER = "jabber:server";
public static final String JABBER_SERVER_DIALBACK = "jabber:server:dialback";
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ProtocolWorker.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ProtocolWorker.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ProtocolWorker.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/ProtocolWorker.java Tue Jan 25 21:01:31 2011
@@ -35,6 +35,7 @@ import org.apache.vysper.xmpp.protocol.w
import org.apache.vysper.xmpp.protocol.worker.UnconnectedProtocolWorker;
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
import org.apache.vysper.xmpp.server.SessionState;
import org.apache.vysper.xmpp.server.response.ServerErrorResponses;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -94,6 +95,7 @@ public class ProtocolWorker implements S
responseWriter.handleUnsupportedStanzaType(sessionContext, stanza);
return;
}
+
if (sessionContext == null && stanzaHandler.isSessionRequired()) {
throw new IllegalStateException("handler requires session context");
}
@@ -103,10 +105,20 @@ public class ProtocolWorker implements S
throw new IllegalStateException("no protocol worker for state " + sessionContext.getState().toString());
}
+ XMPPCoreStanza coreStanza = XMPPCoreStanza.getWrapper(stanza);
+ if(coreStanza != null) {
+ // is a core stanza, must match session mode (e.g. only messages in
+ // jabber:client namespace sent in C2S session)
+ if(!coreStanza.isValidForMode(sessionContext.getSessionMode())) {
+ responseWriter.handleUnsupportedStanzaType(sessionContext, stanza);
+ return;
+ }
+ }
+
// check as of RFC3920/4.3:
if (sessionStateHolder.getState() != SessionState.AUTHENTICATED) {
// is not authenticated...
- if (XMPPCoreStanza.getWrapper(stanza) != null
+ if (coreStanza != null
&& !(stanzaHandler instanceof InBandRegistrationHandler)) {
// ... and is a IQ/PRESENCE/MESSAGE stanza!
responseWriter.handleNotAuthorized(sessionContext, stanza);
@@ -115,9 +127,7 @@ public class ProtocolWorker implements S
}
Entity from = stanza.getFrom();
- if(sessionContext.isServerToServer()) {
- XMPPCoreStanza coreStanza = XMPPCoreStanza.getWrapper(stanza);
-
+ if(sessionContext.isSessionMode(SessionMode.SERVER_2_SERVER)) {
if(coreStanza != null) {
// stanza must come from the origin server
if(from == null) {
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/EncryptedProtocolWorker.java Tue Jan 25 21:01:31 2011
@@ -30,6 +30,7 @@ import org.apache.vysper.xmpp.protocol.S
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -55,9 +56,9 @@ public class EncryptedProtocolWorker ext
return true; // PSI client sends that.
} else if (stanzaHandler instanceof InBandRegistrationHandler) {
return true;
- } else if (sessionContext.isServerToServer() && stanzaHandler instanceof DbResultHandler) {
+ } else if (sessionContext.isSessionMode(SessionMode.SERVER_2_SERVER) && stanzaHandler instanceof DbResultHandler) {
return true;
- } else if (sessionContext.isServerToServer() && stanzaHandler instanceof DbVerifyHandler) {
+ } else if (sessionContext.isSessionMode(SessionMode.SERVER_2_SERVER) && stanzaHandler instanceof DbVerifyHandler) {
return true;
}
ResponseWriter.writeUnsupportedStanzaError(sessionContext);
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java Tue Jan 25 21:01:31 2011
@@ -28,6 +28,7 @@ import org.apache.vysper.xmpp.protocol.S
import org.apache.vysper.xmpp.protocol.StanzaHandler;
import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
import org.apache.vysper.xmpp.stanza.Stanza;
/**
@@ -49,9 +50,9 @@ public class StartedProtocolWorker exten
return true;
} else if (stanzaHandler instanceof InBandRegistrationHandler) {
return true;
- } else if (sessionContext.isServerToServer() && stanzaHandler instanceof DbVerifyHandler) {
+ } else if (sessionContext.isSessionMode(SessionMode.SERVER_2_SERVER) && stanzaHandler instanceof DbVerifyHandler) {
return true;
- } else if (sessionContext.isServerToServer() && stanzaHandler instanceof DbResultHandler) {
+ } else if (sessionContext.isSessionMode(SessionMode.SERVER_2_SERVER) && stanzaHandler instanceof DbResultHandler) {
return true;
}
ResponseWriter.writeUnsupportedStanzaError(sessionContext);
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/AbstractSessionContext.java Tue Jan 25 21:01:31 2011
@@ -60,16 +60,17 @@ public abstract class AbstractSessionCon
private Entity initiatingEntity;
- private boolean serverToServer = false;
+ private SessionMode sessionMode = SessionMode.CLIENT_2_SERVER;
private Map<String, Object> attributeMap = new HashMap<String, Object>();
- public AbstractSessionContext(ServerRuntimeContext serverRuntimeContext, SessionStateHolder sessionStateHolder) {
+ public AbstractSessionContext(ServerRuntimeContext serverRuntimeContext, SessionStateHolder sessionStateHolder, SessionMode sessionMode) {
this.serverRuntimeContext = serverRuntimeContext;
sessionId = serverRuntimeContext.getNextSessionId();
serverEntity = serverRuntimeContext.getServerEnitity();
xmlLang = serverRuntimeContext.getDefaultXMLLang();
this.sessionStateHolder = sessionStateHolder;
+ this.sessionMode = sessionMode;
}
@Override
@@ -97,16 +98,12 @@ public abstract class AbstractSessionCon
this.initiatingEntity = entity;
}
- public boolean isServerToServer() {
- return serverToServer;
+ public boolean isSessionMode(SessionMode mode) {
+ return mode.equals(sessionMode);
}
- public void setServerToServer() {
- serverToServer = true;
- }
-
- public void setClientToServer() {
- serverToServer = false;
+ public SessionMode getSessionMode() {
+ return sessionMode;
}
public SessionState getState() {
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java Tue Jan 25 21:01:31 2011
@@ -25,7 +25,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.apache.vysper.mina.TCPEndpoint;
+import org.apache.vysper.mina.C2SEndpoint;
import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
@@ -83,7 +83,7 @@ public class ServerMain {
}
XMPPServer server = new XMPPServer(domain);
- server.addEndpoint(new TCPEndpoint());
+ server.addEndpoint(new C2SEndpoint());
//server.addEndpoint(new StanzaSessionFactory());
server.setStorageProviderRegistry(providerRegistry);
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/SessionContext.java Tue Jan 25 21:01:31 2011
@@ -60,6 +60,12 @@ public interface SessionContext {
}
+ public enum SessionMode {
+ CLIENT_2_SERVER,
+ SERVER_2_SERVER,
+ COMPONENT_ACCEPT
+ }
+
/**
* Gets the {@link ServerRuntimeContext}.
*
@@ -89,21 +95,16 @@ public interface SessionContext {
void setInitiatingEntity(Entity entity);
/**
- * @return <code>true</code> if this session is handling server-to-server
- * communication (namespace "jabber:server").
- */
- boolean isServerToServer();
-
- /**
- * Set this session to handle server-to-server communication.
+ * Get the mode of this session, c2s, s2s or component connections.
*/
- void setServerToServer();
+ SessionMode getSessionMode();
/**
- * Set this session to handle client-to-server communication.
+ * Verify the current session mode against a matching type
+ * @return true if the provided {@link SessionMode} matches that of this session
*/
- void setClientToServer();
-
+ boolean isSessionMode(SessionMode mode);
+
/**
* @return the state of this session
*/
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/server/s2s/DefaultXMPPServerConnector.java Tue Jan 25 21:01:31 2011
@@ -53,6 +53,7 @@ import org.apache.vysper.xmpp.server.Ser
import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
import org.apache.vysper.xmpp.server.XMPPVersion;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
import org.apache.vysper.xmpp.server.response.ServerResponses;
import org.apache.vysper.xmpp.server.s2s.XmppEndpointResolver.ResolvedAddress;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -337,7 +338,7 @@ public class DefaultXMPPServerConnector
*/
@Override
public void sessionOpened(IoSession session) throws Exception {
- sessionContext = new MinaBackedSessionContext(serverRuntimeContext, sessionStateHolder, session);
+ sessionContext = new MinaBackedSessionContext(serverRuntimeContext, sessionStateHolder, session, SessionMode.SERVER_2_SERVER);
sessionStateHolder.setState(SessionState.INITIATED);
Stanza opener = new ServerResponses().getStreamOpenerForServerConnector(serverRuntimeContext.getServerEnitity(), otherServer, XMPPVersion.VERSION_1_0, sessionContext);
Modified: mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/stanza/XMPPCoreStanza.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/stanza/XMPPCoreStanza.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/stanza/XMPPCoreStanza.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/main/java/org/apache/vysper/xmpp/stanza/XMPPCoreStanza.java Tue Jan 25 21:01:31 2011
@@ -22,6 +22,7 @@ package org.apache.vysper.xmpp.stanza;
import org.apache.vysper.xml.fragment.XMLElementVerifier;
import org.apache.vysper.xmpp.protocol.NamespaceURIs;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
/**
* wraps an all-purpose stanza into a core stanza (iq, message, presence)
@@ -78,8 +79,19 @@ abstract public class XMPPCoreStanza ext
return "error".equals(getType());
}
- public boolean isServerCall() {
- return getNamespaceURI().equals(NamespaceURIs.JABBER_SERVER);
+ public boolean isValidForMode(SessionMode sessionMode) {
+ String expectedNamespace = "";
+ switch(sessionMode) {
+ case CLIENT_2_SERVER:
+ expectedNamespace = NamespaceURIs.JABBER_CLIENT;
+ break;
+ case SERVER_2_SERVER:
+ expectedNamespace = NamespaceURIs.JABBER_SERVER;
+ break;
+ case COMPONENT_ACCEPT:
+ expectedNamespace = NamespaceURIs.JABBER_COMPONENT_ACCEPT;
+ break;
+ }
+ return getNamespaceURI().equals(expectedNamespace);
}
-
}
Modified: mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/IQHandlerTestCase.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/IQHandlerTestCase.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/IQHandlerTestCase.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/IQHandlerTestCase.java Tue Jan 25 21:01:31 2011
@@ -27,6 +27,7 @@ import org.apache.vysper.xmpp.protocol.N
import org.apache.vysper.xmpp.protocol.ResponseStanzaContainer;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.server.TestSessionContext;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
import org.apache.vysper.xmpp.stanza.IQStanza;
import org.apache.vysper.xmpp.stanza.IQStanzaType;
import org.apache.vysper.xmpp.stanza.Stanza;
@@ -43,10 +44,11 @@ public class IQHandlerTestCase extends T
@Override
protected void setUp() throws Exception {
super.setUp();
- sessionContext = new TestSessionContext(sessionStateHolder);
+ sessionContext = new TestSessionContext(sessionStateHolder, SessionMode.CLIENT_2_SERVER);
}
public void testMissingToInServerCall() {
+ sessionContext = new TestSessionContext(sessionStateHolder, SessionMode.SERVER_2_SERVER);
StanzaBuilder stanzaBuilder = new StanzaBuilder("iq", NamespaceURIs.JABBER_SERVER);
stanzaBuilder.addAttribute("type", "get");
// missing stanzaBuilder.addAttribute("to", "test@example.com");
@@ -54,7 +56,6 @@ public class IQHandlerTestCase extends T
stanzaBuilder.startInnerElement("inner", NamespaceURIs.JABBER_SERVER).endInnerElement();
TestSessionContext sessionContext = this.sessionContext;
- sessionContext.setServerToServer();
TestIQHandler iqHandler = new TestIQHandler();
ResponseStanzaContainer responseStanzaContainer = iqHandler.execute(stanzaBuilder.build(), sessionContext
Modified: mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandlerRelayTestCase.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandlerRelayTestCase.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandlerRelayTestCase.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/base/handler/MessageHandlerRelayTestCase.java Tue Jan 25 21:01:31 2011
@@ -34,6 +34,7 @@ import org.apache.vysper.xmpp.protocol.N
import org.apache.vysper.xmpp.protocol.ResponseStanzaContainer;
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.server.TestSessionContext;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
import org.apache.vysper.xmpp.stanza.XMPPCoreStanza;
@@ -84,8 +85,6 @@ public class MessageHandlerRelayTestCase
stanzaBuilder.startInnerElement("timestamp", NamespaceURIs.JABBER_SERVER).addAttribute("value", timestamp)
.endInnerElement();
- senderSessionContext.setClientToServer();
-
assertNull(receiverUser.getNextStanza()); // nothing there yet
assertNull(senderUser.getNextStanza()); // nothing there yet
Modified: mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/starttls/handler/StartTLSHandlerTestCase.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/starttls/handler/StartTLSHandlerTestCase.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/starttls/handler/StartTLSHandlerTestCase.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/modules/core/starttls/handler/StartTLSHandlerTestCase.java Tue Jan 25 21:01:31 2011
@@ -28,6 +28,7 @@ import org.apache.vysper.xmpp.protocol.R
import org.apache.vysper.xmpp.protocol.SessionStateHolder;
import org.apache.vysper.xmpp.server.SessionState;
import org.apache.vysper.xmpp.server.TestSessionContext;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.stanza.StanzaBuilder;
@@ -41,7 +42,7 @@ public class StartTLSHandlerTestCase ext
@Override
protected void setUp() throws Exception {
super.setUp();
- sessionContext = new TestSessionContext(sessionStateHolder);
+ sessionContext = new TestSessionContext(sessionStateHolder, SessionMode.SERVER_2_SERVER);
}
public void testAppropriateSessionState() {
@@ -49,7 +50,6 @@ public class StartTLSHandlerTestCase ext
Stanza starttlsStanza = stanzaBuilder.build();
TestSessionContext sessionContext = this.sessionContext;
- sessionContext.setServerToServer();
sessionContext.setSessionState(SessionState.INITIATED);
Stanza responseStanza = executeStartTLSHandler(starttlsStanza, sessionContext);
Modified: mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/TestSessionContext.java Tue Jan 25 21:01:31 2011
@@ -56,7 +56,7 @@ public class TestSessionContext extends
*/
public static TestSessionContext createSessionContext(Entity entity) {
SessionStateHolder sessionStateHolder = new SessionStateHolder();
- TestSessionContext sessionContext = new TestSessionContext(sessionStateHolder);
+ TestSessionContext sessionContext = new TestSessionContext(sessionStateHolder, SessionMode.CLIENT_2_SERVER);
if (entity != null)
sessionContext.setInitiatingEntity(entity.getBareJID());
return sessionContext;
@@ -82,7 +82,7 @@ public class TestSessionContext extends
DefaultServerRuntimeContext serverContext = new DefaultServerRuntimeContext(new EntityImpl(null, "test", null),
relay);
relay.setServerRuntimeContext(serverContext);
- return new TestSessionContext(serverContext, sessionStateHolder);
+ return new TestSessionContext(serverContext, sessionStateHolder, SessionMode.CLIENT_2_SERVER);
}
/**
@@ -95,20 +95,29 @@ public class TestSessionContext extends
ServerRuntimeContext serverContext) {
StanzaReceiverRelay relay = (StanzaReceiverRelay) serverContext.getStanzaRelay();
relay.setServerRuntimeContext(serverContext);
- return new TestSessionContext(serverContext, sessionStateHolder);
+ return new TestSessionContext(serverContext, sessionStateHolder, SessionMode.CLIENT_2_SERVER);
}
public TestSessionContext(SessionStateHolder sessionStateHolder) {
+ this(sessionStateHolder, SessionMode.CLIENT_2_SERVER);
+ }
+
+ public TestSessionContext(SessionStateHolder sessionStateHolder, SessionMode sessionMode) {
this(new DefaultServerRuntimeContext(new EntityImpl(null, "test", null), new RecordingStanzaRelay(),
- new MemoryStorageProviderRegistry()), sessionStateHolder);
+ new MemoryStorageProviderRegistry()), sessionStateHolder, sessionMode);
}
- public TestSessionContext(ServerRuntimeContext serverRuntimeContext, SessionStateHolder sessionStateHolder) {
- super(serverRuntimeContext, sessionStateHolder);
+ public TestSessionContext(ServerRuntimeContext serverRuntimeContext, SessionStateHolder sessionStateHolder, SessionMode sessionMode) {
+ super(serverRuntimeContext, sessionStateHolder, sessionMode);
sessionId = serverRuntimeContext.getNextSessionId();
xmlLang = "de";
}
+ public TestSessionContext(ServerRuntimeContext serverRuntimeContext, SessionStateHolder sessionStateHolder) {
+ this(serverRuntimeContext, sessionStateHolder, SessionMode.CLIENT_2_SERVER);
+ }
+
+
public Stanza getNextRecordedResponse() {
return recordedResponses.poll();
}
Modified: mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/Server2Server.java Tue Jan 25 21:01:31 2011
@@ -1,8 +1,8 @@
package org.apache.vysper.xmpp.server.s2s;
import java.io.File;
+import org.apache.vysper.mina.C2SEndpoint;
import org.apache.vysper.mina.S2SEndpoint;
-import org.apache.vysper.mina.TCPEndpoint;
import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
@@ -55,7 +55,7 @@ public class Server2Server {
server.addEndpoint(new S2SEndpoint());
// C2S endpoint
- server.addEndpoint(new TCPEndpoint());
+ server.addEndpoint(new C2SEndpoint());
server.setStorageProviderRegistry(providerRegistry);
server.setTLSCertificateInfo(new File(keystorePath), keystorePassword);
Modified: mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/ServerMain.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/ServerMain.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/ServerMain.java (original)
+++ mina/vysper/branches/xep0114/server/core/src/test/java/org/apache/vysper/xmpp/server/s2s/ServerMain.java Tue Jan 25 21:01:31 2011
@@ -24,8 +24,8 @@ import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
+import org.apache.vysper.mina.C2SEndpoint;
import org.apache.vysper.mina.S2SEndpoint;
-import org.apache.vysper.mina.TCPEndpoint;
import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
@@ -93,7 +93,7 @@ public class ServerMain {
server.addEndpoint(new S2SEndpoint());
// C2S endpoint
- server.addEndpoint(new TCPEndpoint());
+ server.addEndpoint(new C2SEndpoint());
//server.addEndpoint(new StanzaSessionFactory());
server.setStorageProviderRegistry(providerRegistry);
Modified: mina/vysper/branches/xep0114/server/extensions/websockets/src/examples/java/org/apache/vysper/xmpp/extension/websockets/DemoServer.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/extensions/websockets/src/examples/java/org/apache/vysper/xmpp/extension/websockets/DemoServer.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/extensions/websockets/src/examples/java/org/apache/vysper/xmpp/extension/websockets/DemoServer.java (original)
+++ mina/vysper/branches/xep0114/server/extensions/websockets/src/examples/java/org/apache/vysper/xmpp/extension/websockets/DemoServer.java Tue Jan 25 21:01:31 2011
@@ -22,7 +22,7 @@ package org.apache.vysper.xmpp.extension
import java.io.File;
import java.io.FileNotFoundException;
-import org.apache.vysper.mina.TCPEndpoint;
+import org.apache.vysper.mina.C2SEndpoint;
import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
@@ -76,7 +76,7 @@ public class DemoServer {
XMPPServer server = new XMPPServer("vysper.org");
- server.addEndpoint(new TCPEndpoint());
+ server.addEndpoint(new C2SEndpoint());
WebSocketEndpoint wsEndpoint = new WebSocketEndpoint() {
Modified: mina/vysper/branches/xep0114/server/extensions/websockets/src/examples/java/org/apache/vysper/xmpp/extension/websockets/ServerMain.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/extensions/websockets/src/examples/java/org/apache/vysper/xmpp/extension/websockets/ServerMain.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/extensions/websockets/src/examples/java/org/apache/vysper/xmpp/extension/websockets/ServerMain.java (original)
+++ mina/vysper/branches/xep0114/server/extensions/websockets/src/examples/java/org/apache/vysper/xmpp/extension/websockets/ServerMain.java Tue Jan 25 21:01:31 2011
@@ -24,7 +24,7 @@ import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
-import org.apache.vysper.mina.TCPEndpoint;
+import org.apache.vysper.mina.C2SEndpoint;
import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
@@ -87,7 +87,7 @@ public class ServerMain {
XMPPServer server = new XMPPServer("vysper.org");
- server.addEndpoint(new TCPEndpoint());
+ server.addEndpoint(new C2SEndpoint());
WebSocketEndpoint wsEndpoint = new WebSocketEndpoint();
// wsEndpoint.setSSLEnabled(true);
Modified: mina/vysper/branches/xep0114/server/extensions/websockets/src/main/java/org/apache/vysper/xmpp/extension/websockets/WebSocketBackedSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/extensions/websockets/src/main/java/org/apache/vysper/xmpp/extension/websockets/WebSocketBackedSessionContext.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/extensions/websockets/src/main/java/org/apache/vysper/xmpp/extension/websockets/WebSocketBackedSessionContext.java (original)
+++ mina/vysper/branches/xep0114/server/extensions/websockets/src/main/java/org/apache/vysper/xmpp/extension/websockets/WebSocketBackedSessionContext.java Tue Jan 25 21:01:31 2011
@@ -38,6 +38,7 @@ import org.apache.vysper.xmpp.server.Abs
import org.apache.vysper.xmpp.server.ServerRuntimeContext;
import org.apache.vysper.xmpp.server.SessionContext;
import org.apache.vysper.xmpp.server.SessionState;
+import org.apache.vysper.xmpp.server.SessionContext.SessionMode;
import org.apache.vysper.xmpp.server.response.ServerErrorResponses;
import org.apache.vysper.xmpp.stanza.Stanza;
import org.apache.vysper.xmpp.writer.StanzaWriter;
@@ -62,7 +63,7 @@ public class WebSocketBackedSessionConte
private NonBlockingXMLReader xmlReader = new DefaultNonBlockingXMLReader();
public WebSocketBackedSessionContext(ServerRuntimeContext serverRuntimeContext) {
- super(serverRuntimeContext, new SessionStateHolder());
+ super(serverRuntimeContext, new SessionStateHolder(), SessionMode.CLIENT_2_SERVER);
XMPPContentHandler contentHandler = new XMPPContentHandler(new StanzaBuilderFactory());
contentHandler.setListener(this);
Modified: mina/vysper/branches/xep0114/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/ServerMain.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/ServerMain.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/ServerMain.java (original)
+++ mina/vysper/branches/xep0114/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/ServerMain.java Tue Jan 25 21:01:31 2011
@@ -21,7 +21,7 @@ package org.apache.vysper.xmpp.modules.e
import java.io.File;
-import org.apache.vysper.mina.TCPEndpoint;
+import org.apache.vysper.mina.C2SEndpoint;
import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.EntityImpl;
@@ -54,7 +54,7 @@ public class ServerMain {
accountManagement.addUser(EntityImpl.parseUnchecked("user2@vysper.org"), "password1");
XMPPServer server = new XMPPServer("vysper.org");
- server.addEndpoint(new TCPEndpoint());
+ server.addEndpoint(new C2SEndpoint());
server.setStorageProviderRegistry(providerRegistry);
server.setTLSCertificateInfo(new File("src/main/config/bogus_mina_tls.cert"), "boguspw");
Modified: mina/vysper/branches/xep0114/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/TestSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/TestSessionContext.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/TestSessionContext.java (original)
+++ mina/vysper/branches/xep0114/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/TestSessionContext.java Tue Jan 25 21:01:31 2011
@@ -108,7 +108,7 @@ public class TestSessionContext extends
}
public TestSessionContext(ServerRuntimeContext serverRuntimeContext, SessionStateHolder sessionStateHolder) {
- super(serverRuntimeContext, sessionStateHolder);
+ super(serverRuntimeContext, sessionStateHolder, SessionMode.CLIENT_2_SERVER);
sessionId = serverRuntimeContext.getNextSessionId();
xmlLang = "de";
}
Modified: mina/vysper/branches/xep0114/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/demo/pubsub/client/ServerMain.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/demo/pubsub/client/ServerMain.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/demo/pubsub/client/ServerMain.java (original)
+++ mina/vysper/branches/xep0114/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/demo/pubsub/client/ServerMain.java Tue Jan 25 21:01:31 2011
@@ -22,7 +22,7 @@ package org.apache.vysper.demo.pubsub.cl
import java.io.File;
import java.io.FileNotFoundException;
-import org.apache.vysper.mina.TCPEndpoint;
+import org.apache.vysper.mina.C2SEndpoint;
import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
@@ -77,7 +77,7 @@ public class ServerMain {
}
XMPPServer server = new XMPPServer("vysper.org");
- server.addEndpoint(new TCPEndpoint());
+ server.addEndpoint(new C2SEndpoint());
//server.addEndpoint(new StanzaSessionFactory());
server.setStorageProviderRegistry(providerRegistry);
Modified: mina/vysper/branches/xep0114/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java (original)
+++ mina/vysper/branches/xep0114/server/extensions/xep0060-pubsub/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0060_pubsub/TestSessionContext.java Tue Jan 25 21:01:31 2011
@@ -108,7 +108,7 @@ public class TestSessionContext extends
}
public TestSessionContext(ServerRuntimeContext serverRuntimeContext, SessionStateHolder sessionStateHolder) {
- super(serverRuntimeContext, sessionStateHolder);
+ super(serverRuntimeContext, sessionStateHolder, SessionMode.CLIENT_2_SERVER);
sessionId = serverRuntimeContext.getNextSessionId();
xmlLang = "de";
}
Modified: mina/vysper/branches/xep0114/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java (original)
+++ mina/vysper/branches/xep0114/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/BoshBackedSessionContext.java Tue Jan 25 21:01:31 2011
@@ -131,7 +131,7 @@ public class BoshBackedSessionContext ex
* @param inactivityChecker
*/
public BoshBackedSessionContext(BoshHandler boshHandler, ServerRuntimeContext serverRuntimeContext, InactivityChecker inactivityChecker) {
- super(serverRuntimeContext, new SessionStateHolder());
+ super(serverRuntimeContext, new SessionStateHolder(), SessionMode.CLIENT_2_SERVER);
// in BOSH we jump directly to the encrypted state
sessionStateHolder.setState(SessionState.ENCRYPTED);
Modified: mina/vysper/branches/xep0114/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/ServerMain.java
URL: http://svn.apache.org/viewvc/mina/vysper/branches/xep0114/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/ServerMain.java?rev=1063460&r1=1063459&r2=1063460&view=diff
==============================================================================
--- mina/vysper/branches/xep0114/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/ServerMain.java (original)
+++ mina/vysper/branches/xep0114/server/extensions/xep0124-xep0206-bosh/src/main/java/org/apache/vysper/xmpp/extension/xep0124/ServerMain.java Tue Jan 25 21:01:31 2011
@@ -25,7 +25,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.apache.vysper.mina.TCPEndpoint;
+import org.apache.vysper.mina.C2SEndpoint;
import org.apache.vysper.storage.StorageProviderRegistry;
import org.apache.vysper.storage.inmemory.MemoryStorageProviderRegistry;
import org.apache.vysper.xmpp.addressing.Entity;
@@ -88,7 +88,7 @@ public class ServerMain {
XMPPServer server = new XMPPServer("vysper.org");
- server.addEndpoint(new TCPEndpoint());
+ server.addEndpoint(new C2SEndpoint());
BoshEndpoint boshEndpoint = new BoshEndpoint();
boshEndpoint.setAccessControlAllowOrigin(Arrays.asList("*"));