You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by be...@apache.org on 2008/11/22 21:39:28 UTC

svn commit: r719912 - in /labs/vysper/src/main/java/org/apache/vysper/xmpp/modules: core/base/handler/ core/bind/handler/ extension/xep0092_software_version/ roster/handler/

Author: berndf
Date: Sat Nov 22 12:39:27 2008
New Revision: 719912

URL: http://svn.apache.org/viewvc?rev=719912&view=rev
Log:
[vysper] improve IQ handling: check the first element, normally for 'query'. until now, everything would have been accepted 

Modified:
    labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/DefaultIQHandler.java
    labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/bind/handler/BindIQHandler.java
    labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0092_software_version/SoftwareVersionIQHandler.java
    labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/roster/handler/RosterIQHandler.java

Modified: labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/DefaultIQHandler.java
URL: http://svn.apache.org/viewvc/labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/DefaultIQHandler.java?rev=719912&r1=719911&r2=719912&view=diff
==============================================================================
--- labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/DefaultIQHandler.java (original)
+++ labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/base/handler/DefaultIQHandler.java Sat Nov 22 12:39:27 2008
@@ -36,6 +36,21 @@
     final Logger logger = LoggerFactory.getLogger(DefaultIQHandler.class);
 
     @Override
+    public boolean verify(Stanza stanza) {
+        return super.verify(stanza) && verifyInnerElement(stanza);
+    }
+
+    protected boolean verifyInnerElement(Stanza stanza) {
+        return true;
+    }
+
+    protected boolean verifyInnerElementWorker(Stanza stanza, String firstInnerElement) {
+        return stanza != null &&
+               stanza.getVerifier().subElementsPresentExact(1) &&
+               stanza.getVerifier().subElementPresent(firstInnerElement);
+    }
+
+    @Override
     protected abstract boolean verifyNamespace(Stanza stanza);
 
     @Override

Modified: labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/bind/handler/BindIQHandler.java
URL: http://svn.apache.org/viewvc/labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/bind/handler/BindIQHandler.java?rev=719912&r1=719911&r2=719912&view=diff
==============================================================================
--- labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/bind/handler/BindIQHandler.java (original)
+++ labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/core/bind/handler/BindIQHandler.java Sat Nov 22 12:39:27 2008
@@ -40,6 +40,11 @@
     }
 
     @Override
+    protected boolean verifyInnerElement(Stanza stanza) {
+        return verifyInnerElementWorker(stanza, "bind");
+    }
+
+    @Override
     protected Stanza handleSet(IQStanza stanza, ServerRuntimeContext serverRuntimeContext, SessionContext sessionContext) {
         
         // As per RFC3920.7, the client may propose a resource id to the server: 

Modified: labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0092_software_version/SoftwareVersionIQHandler.java
URL: http://svn.apache.org/viewvc/labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0092_software_version/SoftwareVersionIQHandler.java?rev=719912&r1=719911&r2=719912&view=diff
==============================================================================
--- labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0092_software_version/SoftwareVersionIQHandler.java (original)
+++ labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0092_software_version/SoftwareVersionIQHandler.java Sat Nov 22 12:39:27 2008
@@ -24,6 +24,11 @@
     }
 
     @Override
+    protected boolean verifyInnerElement(Stanza stanza) {
+        return verifyInnerElementWorker(stanza, "query");
+    }
+
+    @Override
     protected Stanza handleGet(IQStanza stanza, ServerRuntimeContext serverRuntimeContext, SessionContext sessionContext) {
 
         StanzaBuilder stanzaBuilder = StanzaBuilder.createIQStanza(stanza.getTo(), stanza.getFrom(), IQStanzaType.RESULT, stanza.getID()).

Modified: labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/roster/handler/RosterIQHandler.java
URL: http://svn.apache.org/viewvc/labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/roster/handler/RosterIQHandler.java?rev=719912&r1=719911&r2=719912&view=diff
==============================================================================
--- labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/roster/handler/RosterIQHandler.java (original)
+++ labs/vysper/src/main/java/org/apache/vysper/xmpp/modules/roster/handler/RosterIQHandler.java Sat Nov 22 12:39:27 2008
@@ -67,6 +67,11 @@
     }
 
     @Override
+    protected boolean verifyInnerElement(Stanza stanza) {
+        return verifyInnerElementWorker(stanza, "query");
+    }
+
+    @Override
     protected Stanza handleGet(IQStanza stanza, ServerRuntimeContext serverRuntimeContext, SessionContext sessionContext) {
 
         ResourceRegistry registry = serverRuntimeContext.getResourceRegistry();



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org