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