You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by gi...@apache.org on 2012/03/10 20:14:28 UTC
svn commit: r1299255 - in /webservices/wss4j/branches/swssf:
streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/
streaming-ws-security/src/main/java/org/swssf/wss/impl/securityToken/
streaming-xml-security/src/main/java/org/swssf/xm...
Author: giger
Date: Sat Mar 10 19:14:27 2012
New Revision: 1299255
URL: http://svn.apache.org/viewvc?rev=1299255&view=rev
Log:
Set responsible XMLEvent for a token; Will be needed for policy verification
Modified:
webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/BinarySecurityTokenInputHandler.java
webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/DerivedKeyTokenInputHandler.java
webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/EncryptedKeyInputHandler.java
webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/SAMLTokenInputHandler.java
webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/SecurityContextTokenInputHandler.java
webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/UsernameTokenInputHandler.java
webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/securityToken/AbstractSecurityToken.java
webservices/wss4j/branches/swssf/streaming-xml-security/src/main/java/org/swssf/xmlsec/ext/AbstractInputSecurityHeaderHandler.java
webservices/wss4j/branches/swssf/streaming-xml-security/src/main/java/org/swssf/xmlsec/ext/SecurityToken.java
Modified: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/BinarySecurityTokenInputHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/BinarySecurityTokenInputHandler.java?rev=1299255&r1=1299254&r2=1299255&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/BinarySecurityTokenInputHandler.java (original)
+++ webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/BinarySecurityTokenInputHandler.java Sat Mar 10 19:14:27 2012
@@ -53,6 +53,7 @@ public class BinarySecurityTokenInputHan
}
final List<QName> elementPath = getElementPath(inputProcessorChain.getDocumentContext(), eventQueue);
+ final XMLEvent responsibleStartXMLEvent = getResponsibleStartXMLEvent(eventQueue, index);
SecurityTokenProvider securityTokenProvider = new SecurityTokenProvider() {
@@ -77,6 +78,7 @@ public class BinarySecurityTokenInputHan
crypto,
securityProperties.getCallbackHandler());
this.binarySecurityToken.setElementPath(elementPath);
+ this.binarySecurityToken.setXMLEvent(responsibleStartXMLEvent);
return this.binarySecurityToken;
}
Modified: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/DerivedKeyTokenInputHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/DerivedKeyTokenInputHandler.java?rev=1299255&r1=1299254&r2=1299255&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/DerivedKeyTokenInputHandler.java (original)
+++ webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/DerivedKeyTokenInputHandler.java Sat Mar 10 19:14:27 2012
@@ -64,6 +64,7 @@ public class DerivedKeyTokenInputHandler
}
final List<QName> elementPath = getElementPath(inputProcessorChain.getDocumentContext(), eventQueue);
+ final XMLEvent responsibleStartXMLEvent = getResponsibleStartXMLEvent(eventQueue, index);
SecurityTokenProvider securityTokenProvider = new SecurityTokenProvider() {
@@ -151,6 +152,7 @@ public class DerivedKeyTokenInputHandler
}
};
this.derivedKeySecurityToken.setElementPath(elementPath);
+ this.derivedKeySecurityToken.setXMLEvent(responsibleStartXMLEvent);
return this.derivedKeySecurityToken;
}
Modified: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/EncryptedKeyInputHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/EncryptedKeyInputHandler.java?rev=1299255&r1=1299254&r2=1299255&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/EncryptedKeyInputHandler.java (original)
+++ webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/EncryptedKeyInputHandler.java Sat Mar 10 19:14:27 2012
@@ -63,6 +63,7 @@ public class EncryptedKeyInputHandler ex
}
final List<QName> elementPath = getElementPath(inputProcessorChain.getDocumentContext(), eventQueue);
+ final XMLEvent responsibleStartXMLEvent = getResponsibleStartXMLEvent(eventQueue, index);
SecurityTokenProvider securityTokenProvider = new SecurityTokenProvider() {
@@ -171,6 +172,7 @@ public class EncryptedKeyInputHandler ex
}
};
this.securityToken.setElementPath(elementPath);
+ this.securityToken.setXMLEvent(responsibleStartXMLEvent);
return this.securityToken;
}
Modified: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/SAMLTokenInputHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/SAMLTokenInputHandler.java?rev=1299255&r1=1299254&r2=1299255&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/SAMLTokenInputHandler.java (original)
+++ webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/SAMLTokenInputHandler.java Sat Mar 10 19:14:27 2012
@@ -72,6 +72,7 @@ public class SAMLTokenInputHandler exten
}
final List<QName> elementPath = getElementPath(inputProcessorChain.getDocumentContext(), eventQueue);
+ final XMLEvent responsibleStartXMLEvent = getResponsibleStartXMLEvent(eventQueue, index);
SecurityTokenProvider securityTokenProvider = new SecurityTokenProvider() {
@@ -89,6 +90,7 @@ public class SAMLTokenInputHandler exten
securityProperties.getCallbackHandler(), samlAssertionWrapper.getId(), null);
this.securityToken.setElementPath(elementPath);
+ this.securityToken.setXMLEvent(responsibleStartXMLEvent);
return this.securityToken;
}
Modified: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/SecurityContextTokenInputHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/SecurityContextTokenInputHandler.java?rev=1299255&r1=1299254&r2=1299255&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/SecurityContextTokenInputHandler.java (original)
+++ webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/SecurityContextTokenInputHandler.java Sat Mar 10 19:14:27 2012
@@ -59,6 +59,7 @@ public class SecurityContextTokenInputHa
new QName(securityContextTokenTypeJAXBElement.getName().getNamespaceURI(), WSSConstants.TAG_wsc0502_Identifier.getLocalPart()));
final List<QName> elementPath = getElementPath(inputProcessorChain.getDocumentContext(), eventQueue);
+ final XMLEvent responsibleStartXMLEvent = getResponsibleStartXMLEvent(eventQueue, index);
final WSSecurityToken securityContextToken =
new AbstractSecurityToken(
@@ -94,6 +95,7 @@ public class SecurityContextTokenInputHa
}
};
securityContextToken.setElementPath(elementPath);
+ securityContextToken.setXMLEvent(responsibleStartXMLEvent);
SecurityTokenProvider securityTokenProvider = new SecurityTokenProvider() {
Modified: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/UsernameTokenInputHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/UsernameTokenInputHandler.java?rev=1299255&r1=1299254&r2=1299255&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/UsernameTokenInputHandler.java (original)
+++ webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/processor/input/UsernameTokenInputHandler.java Sat Mar 10 19:14:27 2012
@@ -181,6 +181,7 @@ public class UsernameTokenInputHandler e
final String password = passwordType.getValue();
final List<QName> elementPath = getElementPath(inputProcessorChain.getDocumentContext(), eventQueue);
+ final XMLEvent responsibleStartXMLEvent = getResponsibleStartXMLEvent(eventQueue, index);
SecurityTokenProvider securityTokenProvider = new SecurityTokenProvider() {
@@ -193,6 +194,7 @@ public class UsernameTokenInputHandler e
this.securityToken = SecurityTokenFactoryImpl.getSecurityToken(username.getValue(), password,
created, nonceVal, salt, iteration, (WSSecurityContext) inputProcessorChain.getSecurityContext(), usernameTokenType.getId());
this.securityToken.setElementPath(elementPath);
+ this.securityToken.setXMLEvent(responsibleStartXMLEvent);
return this.securityToken;
}
Modified: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/securityToken/AbstractSecurityToken.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/securityToken/AbstractSecurityToken.java?rev=1299255&r1=1299254&r2=1299255&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/securityToken/AbstractSecurityToken.java (original)
+++ webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/impl/securityToken/AbstractSecurityToken.java Sat Mar 10 19:14:27 2012
@@ -31,6 +31,7 @@ import org.swssf.xmlsec.ext.XMLSecurityE
import javax.crypto.SecretKey;
import javax.security.auth.callback.CallbackHandler;
import javax.xml.namespace.QName;
+import javax.xml.stream.events.XMLEvent;
import java.security.Key;
import java.security.PublicKey;
import java.security.cert.X509Certificate;
@@ -57,6 +58,7 @@ public abstract class AbstractSecurityTo
private String id;
private Object processor;
private List<QName> elementPath;
+ private XMLEvent xmlEvent;
private WSSConstants.KeyIdentifierType keyIdentifierType;
private List<SecurityToken> wrappedTokens;
private List<TokenUsage> tokenUsages = new ArrayList<TokenUsage>();
@@ -112,6 +114,16 @@ public abstract class AbstractSecurityTo
this.elementPath = Collections.unmodifiableList(elementPath);
}
+ @Override
+ public XMLEvent getXMLEvent() {
+ return xmlEvent;
+ }
+
+ @Override
+ public void setXMLEvent(XMLEvent xmlEvent) {
+ this.xmlEvent = xmlEvent;
+ }
+
public Crypto getCrypto() {
return crypto;
}
Modified: webservices/wss4j/branches/swssf/streaming-xml-security/src/main/java/org/swssf/xmlsec/ext/AbstractInputSecurityHeaderHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-xml-security/src/main/java/org/swssf/xmlsec/ext/AbstractInputSecurityHeaderHandler.java?rev=1299255&r1=1299254&r2=1299255&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-xml-security/src/main/java/org/swssf/xmlsec/ext/AbstractInputSecurityHeaderHandler.java (original)
+++ webservices/wss4j/branches/swssf/streaming-xml-security/src/main/java/org/swssf/xmlsec/ext/AbstractInputSecurityHeaderHandler.java Sat Mar 10 19:14:27 2012
@@ -28,6 +28,7 @@ import javax.xml.namespace.QName;
import javax.xml.stream.events.XMLEvent;
import java.util.ArrayList;
import java.util.Deque;
+import java.util.Iterator;
import java.util.List;
/**
@@ -63,4 +64,13 @@ public abstract class AbstractInputSecur
}
return elementPath;
}
+
+ protected XMLEvent getResponsibleStartXMLEvent(Deque<XMLEvent> eventDeque, int index) {
+ Iterator<XMLEvent> xmlEventIterator = eventDeque.descendingIterator();
+ int curIdx = 0;
+ while (curIdx++ < index) {
+ xmlEventIterator.next();
+ }
+ return xmlEventIterator.next();
+ }
}
Modified: webservices/wss4j/branches/swssf/streaming-xml-security/src/main/java/org/swssf/xmlsec/ext/SecurityToken.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-xml-security/src/main/java/org/swssf/xmlsec/ext/SecurityToken.java?rev=1299255&r1=1299254&r2=1299255&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-xml-security/src/main/java/org/swssf/xmlsec/ext/SecurityToken.java (original)
+++ webservices/wss4j/branches/swssf/streaming-xml-security/src/main/java/org/swssf/xmlsec/ext/SecurityToken.java Sat Mar 10 19:14:27 2012
@@ -19,6 +19,7 @@
package org.swssf.xmlsec.ext;
import javax.xml.namespace.QName;
+import javax.xml.stream.events.XMLEvent;
import java.security.Key;
import java.security.PublicKey;
import java.security.cert.X509Certificate;
@@ -73,6 +74,13 @@ public interface SecurityToken {
List<QName> getElementPath();
/**
+ * Returns the first XMLEvent for this token
+ *
+ * @return
+ */
+ XMLEvent getXMLEvent();
+
+ /**
* Returns the token type
*
* @return true if asymmetric token, false if symmetric token