Author: ngn
Date: Mon Jul  4 20:59:38 2011
New Revision: 1142804

URL: http://svn.apache.org/viewvc?rev=1142804&view=rev
Log:
Only announce in-band registrations on encrypted connections.  (VYSPER-288)

Modified:
    
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java
    
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java
    
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java
    
mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/response/ServerResponsesTestCase.java

Modified: 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java?rev=1142804&r1=1142803&r2=1142804&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java
 (original)
+++ 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/protocol/worker/StartedProtocolWorker.java
 Mon Jul  4 20:59:38 2011
@@ -21,6 +21,7 @@ package org.apache.vysper.xmpp.protocol.
 
 import org.apache.vysper.xmpp.modules.core.sasl.handler.AbstractSASLHandler;
 import org.apache.vysper.xmpp.modules.core.starttls.handler.StartTLSHandler;
+import 
org.apache.vysper.xmpp.modules.extension.xep0077_inbandreg.InBandRegistrationHandler;
 import 
org.apache.vysper.xmpp.modules.extension.xep0220_server_dailback.DbResultHandler;
 import 
org.apache.vysper.xmpp.modules.extension.xep0220_server_dailback.DbVerifyHandler;
 import org.apache.vysper.xmpp.protocol.ResponseWriter;
@@ -50,6 +51,8 @@ public class StartedProtocolWorker exten
         } else if (stanzaHandler instanceof AbstractSASLHandler && 
             
!sessionContext.getServerRuntimeContext().getServerFeatures().isStartTLSRequired())
 {
             return true;
+        } else if (stanzaHandler instanceof InBandRegistrationHandler) {
+            return true;
         } else if (sessionContext.isServerToServer() && stanzaHandler 
instanceof DbVerifyHandler) {
             return true;
         } else if (sessionContext.isServerToServer() && stanzaHandler 
instanceof DbResultHandler) {

Modified: 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java?rev=1142804&r1=1142803&r2=1142804&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java
 (original)
+++ 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/ServerMain.java
 Mon Jul  4 20:59:38 2011
@@ -92,10 +92,7 @@ public class ServerMain {
         server.addModule(new VcardTempModule());
         server.addModule(new XmppPingModule());
         server.addModule(new PrivateDataModule());
-        
-        // uncomment to enable in-band registrations (XEP-0077)
-        // server.addModule(new InBandRegistrationModule());
-        
+        server.addModule(new InBandRegistrationModule());
         server.addModule(new AdhocCommandsModule());
         final ServiceAdministrationModule serviceAdministrationModule = new 
ServiceAdministrationModule();
         // unless admin user account with a secure password is added, this 
will be not become effective

Modified: 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java?rev=1142804&r1=1142803&r2=1142804&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java
 (original)
+++ 
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/server/response/ServerResponses.java
 Mon Jul  4 20:59:38 2011
@@ -51,7 +51,7 @@ public class ServerResponses {
             innerFeatureStanza = getFeaturesForEncryption(sessionContext);
         else if (sessionContext.getState() == SessionState.ENCRYPTED)
             innerFeatureStanza = 
getFeaturesForAuthentication(sessionContext.getServerRuntimeContext()
-                    .getServerFeatures().getAuthenticationMethods(), 
sessionContext);
+                    .getServerFeatures().getAuthenticationMethods());
         else if (sessionContext.getState() == SessionState.AUTHENTICATED) {
             sessionContext.setIsReopeningXMLStream();
             innerFeatureStanza = getFeaturesForSession();
@@ -132,6 +132,10 @@ public class ServerResponses {
             // only add auth methods, if StartTLS is NOT REQUIRED (according 
to RFC6120.html#5.3.1
             getFeaturesSASL(serverFeatures.getAuthenticationMethods(), 
stanzaBuilder);
         }
+        
if(sessionContext.getServerRuntimeContext().getModule(InBandRegistrationModule.class)
 != null) {
+            // In-band registration active, show as feature
+            stanzaBuilder.startInnerElement("register", 
NamespaceURIs.JABBER_ORG_FEATURES_IQ_REGISTER);
+        }
 
         return stanzaBuilder.build();
     }
@@ -145,17 +149,11 @@ public class ServerResponses {
         stanzaBuilder.endInnerElement();
     }
 
-    public Stanza getFeaturesForAuthentication(List<SASLMechanism> 
authenticationMethods, SessionContext sessionContext) {
+    public Stanza getFeaturesForAuthentication(List<SASLMechanism> 
authenticationMethods) {
 
         StanzaBuilder stanzaBuilder = startFeatureStanza();
         getFeaturesSASL(authenticationMethods, stanzaBuilder);
 
-        
if(sessionContext.getServerRuntimeContext().getModule(InBandRegistrationModule.class)
 != null) {
-            // In-band registration active, show as feature
-            stanzaBuilder.startInnerElement("register", 
NamespaceURIs.JABBER_ORG_FEATURES_IQ_REGISTER).endInnerElement();
-        }
-
-        
         return stanzaBuilder.build();
     }
 

Modified: 
mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/response/ServerResponsesTestCase.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/response/ServerResponsesTestCase.java?rev=1142804&r1=1142803&r2=1142804&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/response/ServerResponsesTestCase.java
 (original)
+++ 
mina/vysper/trunk/server/core/src/test/java/org/apache/vysper/xmpp/server/response/ServerResponsesTestCase.java
 Mon Jul  4 20:59:38 2011
@@ -32,7 +32,6 @@ import org.apache.vysper.xmpp.authentica
 import org.apache.vysper.xmpp.authentication.SASLMechanism;
 import org.apache.vysper.xmpp.parser.ParsingException;
 import org.apache.vysper.xmpp.protocol.NamespaceURIs;
-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.XMPPVersion;
@@ -61,16 +60,13 @@ public class ServerResponsesTestCase {
                 .endInnerElement().startInnerElement("mechanism", 
NamespaceURIs.URN_IETF_PARAMS_XML_NS_XMPP_SASL)
                 
.addText("ANONYMOUS").endInnerElement().endInnerElement().build();
 
-        ServerRuntimeContext serverRuntimeContext = 
Mockito.mock(ServerRuntimeContext.class);
-        
Mockito.when(sessionContext.getServerRuntimeContext()).thenReturn(serverRuntimeContext);
-        
         List<SASLMechanism> mechanismList = new ArrayList<SASLMechanism>();
         mechanismList.add(new External());
         mechanismList.add(new Plain());
         mechanismList.add(new Anonymous());
         // add others
         Assert.assertEquals("stanzas are identical", stanza.toString(), new 
ServerResponses().getFeaturesForAuthentication(
-                mechanismList, sessionContext).toString());
+                mechanismList).toString());
     }
     
     @Test


Reply via email to