Author: giger
Date: Sat Jun  8 13:20:18 2013
New Revision: 1490977

URL: http://svn.apache.org/r1490977
Log:
- WSS-442
- Cleanup KeyIdentifier
- SecurityToken refactorings


Added:
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509IssuerSerialTokenImpl.java
      - copied, changed from r1485168, 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509DataSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509SKISecurityTokenImpl.java
      - copied, changed from r1485168, 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509SubjectKeyIdentifierSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509ThumbprintSHA1SecurityTokenImpl.java
      - copied, changed from r1485168, 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/ThumbprintSHA1SecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509V3SecurityTokenImpl.java
      - copied, changed from r1485168, 
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509_V3SecurityTokenImpl.java
Removed:
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/ThumbprintSHA1SecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509DataSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509SubjectKeyIdentifierSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509_V3SecurityTokenImpl.java
Modified:
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcer.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/HttpsTokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/IssuedTokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/KerberosTokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/KeyValueTokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/RelTokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SamlTokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SecureConversationTokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SecurityContextTokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SpnegoContextTokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/TokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/TokenProtectionAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/UsernameTokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/X509TokenAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/AbstractPolicyTestBase.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/AsymmetricBindingIntegrationTest.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/IssuedTokenTest.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/KerberosTokenTest.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/SamlTokenTest.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/SupportingTokensTest.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/SymmetricBindingTest.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/TransportBindingIntegrationTest.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/UsernameTokenTest.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/InboundWSSecurityContextImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/DerivedKeyTokenInputHandler.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SAMLTokenInputHandler.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/input/SecurityTokenReferenceInputHandler.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/DsaKeyValueSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/ECKeyValueSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/EncryptedKeySha1SecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/HttpsSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/KerberosServiceSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/RsaKeyValueSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/SamlSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/SecureConversationSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/SecurityTokenFactoryImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/SecurityTokenReferenceImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/UsernameSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509DefaultSecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509PKIPathv1SecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/X509SecurityTokenImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/securityToken/WSSecurityTokenConstants.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/BinarySecurityTokenValidatorImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SamlTokenValidatorImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SecurityContextTokenValidatorImpl.java
    
webservices/wss4j/trunk/ws-security-stax/src/test/java/org/apache/wss4j/stax/test/InboundWSSecurityContextImplTest.java

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcer.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcer.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcer.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/PolicyEnforcer.java
 Sat Jun  8 13:20:18 2013
@@ -126,6 +126,7 @@ public class PolicyEnforcer implements S
 
     public PolicyEnforcer(List<OperationPolicy> operationPolicies, String 
soapAction, boolean initiator) throws WSSPolicyException {
         this.operationPolicies = operationPolicies;
+        this.initiator = initiator;
         assertionStateMap = new LinkedList<Map<SecurityEventConstants.Event, 
Map<Assertion, List<Assertable>>>>();
         failedAssertionStateMap = new 
LinkedList<Map<SecurityEventConstants.Event, Map<Assertion, 
List<Assertable>>>>();
 
@@ -135,7 +136,6 @@ public class PolicyEnforcer implements S
                 buildAssertionStateMap(effectivePolicy.getPolicy(), 
assertionStateMap);
             }
         }
-        this.initiator = initiator;
     }
 
     private OperationPolicy findPolicyBySOAPAction(List<OperationPolicy> 
operationPolicies, String soapAction) {
@@ -268,27 +268,27 @@ public class PolicyEnforcer implements S
         } else if (abstractSecurityAssertion instanceof RequiredParts) {
             assertableList.add(new 
RequiredPartsAssertionState(abstractSecurityAssertion, false));
         } else if (abstractSecurityAssertion instanceof UsernameToken) {
-            assertableList.add(new 
UsernameTokenAssertionState(abstractSecurityAssertion, false));
+            assertableList.add(new 
UsernameTokenAssertionState(abstractSecurityAssertion, false, initiator));
         } else if (abstractSecurityAssertion instanceof IssuedToken) {
-            assertableList.add(new 
IssuedTokenAssertionState(abstractSecurityAssertion, false));
+            assertableList.add(new 
IssuedTokenAssertionState(abstractSecurityAssertion, false, initiator));
         } else if (abstractSecurityAssertion instanceof X509Token) {
-            assertableList.add(new 
X509TokenAssertionState(abstractSecurityAssertion, false));
+            assertableList.add(new 
X509TokenAssertionState(abstractSecurityAssertion, false, initiator));
         } else if (abstractSecurityAssertion instanceof KerberosToken) {
-            assertableList.add(new 
KerberosTokenAssertionState(abstractSecurityAssertion, false));
+            assertableList.add(new 
KerberosTokenAssertionState(abstractSecurityAssertion, false, initiator));
         } else if (abstractSecurityAssertion instanceof SpnegoContextToken) {
-            assertableList.add(new 
SpnegoContextTokenAssertionState(abstractSecurityAssertion, false));
+            assertableList.add(new 
SpnegoContextTokenAssertionState(abstractSecurityAssertion, false, initiator));
         } else if (abstractSecurityAssertion instanceof 
SecureConversationToken) {
-            assertableList.add(new 
SecureConversationTokenAssertionState(abstractSecurityAssertion, false));
+            assertableList.add(new 
SecureConversationTokenAssertionState(abstractSecurityAssertion, false, 
initiator));
         } else if (abstractSecurityAssertion instanceof SecurityContextToken) {
-            assertableList.add(new 
SecurityContextTokenAssertionState(abstractSecurityAssertion, false));
+            assertableList.add(new 
SecurityContextTokenAssertionState(abstractSecurityAssertion, false, 
initiator));
         } else if (abstractSecurityAssertion instanceof SamlToken) {
-            assertableList.add(new 
SamlTokenAssertionState(abstractSecurityAssertion, false));
+            assertableList.add(new 
SamlTokenAssertionState(abstractSecurityAssertion, false, initiator));
         } else if (abstractSecurityAssertion instanceof RelToken) {
-            assertableList.add(new 
RelTokenAssertionState(abstractSecurityAssertion, false));
+            assertableList.add(new 
RelTokenAssertionState(abstractSecurityAssertion, false, initiator));
         } else if (abstractSecurityAssertion instanceof HttpsToken) {
-            assertableList.add(new 
HttpsTokenAssertionState(abstractSecurityAssertion, false));
+            assertableList.add(new 
HttpsTokenAssertionState(abstractSecurityAssertion, false, initiator));
         } else if (abstractSecurityAssertion instanceof KeyValueToken) {
-            assertableList.add(new 
KeyValueTokenAssertionState(abstractSecurityAssertion, false));
+            assertableList.add(new 
KeyValueTokenAssertionState(abstractSecurityAssertion, false, initiator));
         } else if (abstractSecurityAssertion instanceof AlgorithmSuite) {
             //initialized with asserted=true because we do negative matching
             assertableList.add(new 
AlgorithmSuiteAssertionState(abstractSecurityAssertion, true));

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/HttpsTokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/HttpsTokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/HttpsTokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/HttpsTokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -34,8 +34,8 @@ import org.apache.wss4j.stax.securityEve
 
 public class HttpsTokenAssertionState extends TokenAssertionState {
 
-    public HttpsTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted) {
-        super(assertion, asserted);
+    public HttpsTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted, boolean initiator) {
+        super(assertion, asserted, initiator);
     }
 
     @Override

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/IssuedTokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/IssuedTokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/IssuedTokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/IssuedTokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -51,8 +51,8 @@ import java.util.Map;
 
 public class IssuedTokenAssertionState extends TokenAssertionState {
 
-    public IssuedTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted) {
-        super(assertion, asserted);
+    public IssuedTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted, boolean initiator) {
+        super(assertion, asserted, initiator);
     }
 
     @Override

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/KerberosTokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/KerberosTokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/KerberosTokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/KerberosTokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -36,8 +36,8 @@ import org.apache.wss4j.stax.securityEve
 
 public class KerberosTokenAssertionState extends TokenAssertionState {
 
-    public KerberosTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted) {
-        super(assertion, asserted);
+    public KerberosTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted, boolean initiator) {
+        super(assertion, asserted, initiator);
     }
 
     @Override

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/KeyValueTokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/KeyValueTokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/KeyValueTokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/KeyValueTokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -35,8 +35,8 @@ import org.apache.wss4j.stax.securityEve
 
 public class KeyValueTokenAssertionState extends TokenAssertionState {
 
-    public KeyValueTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted) {
-        super(assertion, asserted);
+    public KeyValueTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted, boolean initiator) {
+        super(assertion, asserted, initiator);
     }
 
     @Override

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/RelTokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/RelTokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/RelTokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/RelTokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -34,8 +34,8 @@ import org.apache.wss4j.stax.securityEve
 
 public class RelTokenAssertionState extends TokenAssertionState {
 
-    public RelTokenAssertionState(AbstractSecurityAssertion assertion, boolean 
asserted) {
-        super(assertion, asserted);
+    public RelTokenAssertionState(AbstractSecurityAssertion assertion, boolean 
asserted, boolean initiator) {
+        super(assertion, asserted, initiator);
     }
 
     @Override

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SamlTokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SamlTokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SamlTokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SamlTokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -38,8 +38,8 @@ import org.apache.xml.security.stax.secu
 
 public class SamlTokenAssertionState extends TokenAssertionState {
 
-    public SamlTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted) {
-        super(assertion, asserted);
+    public SamlTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted, boolean initiator) {
+        super(assertion, asserted, initiator);
     }
 
     @Override

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SecureConversationTokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SecureConversationTokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SecureConversationTokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SecureConversationTokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -34,8 +34,8 @@ import org.apache.wss4j.stax.securityEve
 
 public class SecureConversationTokenAssertionState extends TokenAssertionState 
{
 
-    public SecureConversationTokenAssertionState(AbstractSecurityAssertion 
assertion, boolean asserted) {
-        super(assertion, asserted);
+    public SecureConversationTokenAssertionState(AbstractSecurityAssertion 
assertion, boolean asserted, boolean initiator) {
+        super(assertion, asserted, initiator);
     }
 
     @Override

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SecurityContextTokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SecurityContextTokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SecurityContextTokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SecurityContextTokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -34,8 +34,8 @@ import org.apache.wss4j.stax.securityEve
 
 public class SecurityContextTokenAssertionState extends TokenAssertionState {
 
-    public SecurityContextTokenAssertionState(AbstractSecurityAssertion 
assertion, boolean asserted) {
-        super(assertion, asserted);
+    public SecurityContextTokenAssertionState(AbstractSecurityAssertion 
assertion, boolean asserted, boolean initiator) {
+        super(assertion, asserted, initiator);
     }
 
     @Override

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SpnegoContextTokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SpnegoContextTokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SpnegoContextTokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SpnegoContextTokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -34,8 +34,8 @@ import org.apache.wss4j.stax.securityEve
 
 public class SpnegoContextTokenAssertionState extends TokenAssertionState {
 
-    public SpnegoContextTokenAssertionState(AbstractSecurityAssertion 
assertion, boolean asserted) {
-        super(assertion, asserted);
+    public SpnegoContextTokenAssertionState(AbstractSecurityAssertion 
assertion, boolean asserted, boolean initiator) {
+        super(assertion, asserted, initiator);
     }
 
     @Override

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/TokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/TokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/TokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/TokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -41,8 +41,11 @@ public abstract class TokenAssertionStat
     //todo? WSP1.3 5.2.3 Required Claims
     //todo derived keys?
 
-    public TokenAssertionState(AbstractSecurityAssertion assertion, boolean 
asserted) {
+    private boolean initiator;
+
+    public TokenAssertionState(AbstractSecurityAssertion assertion, boolean 
asserted, boolean initiator) {
         super(assertion, asserted);
+        this.initiator = initiator;
     }
 
     @Override
@@ -65,7 +68,15 @@ public abstract class TokenAssertionStat
         while (tokenUsageIterator.hasNext()) {
             WSSecurityTokenConstants.TokenUsage tokenUsage = 
tokenUsageIterator.next();
             if 
(WSSecurityTokenConstants.TokenUsage_MainSignature.equals(tokenUsage)) {
-                if (!(parentAssertion instanceof InitiatorToken)
+                if (initiator && !(parentAssertion instanceof RecipientToken)
+                        && !(parentAssertion instanceof 
RecipientSignatureToken)
+                        && !(parentAssertion instanceof SignatureToken)
+                        && !(parentAssertion instanceof ProtectionToken)
+                        && !(parentAssertion instanceof TransportToken)) {
+                    ignoreToken++;
+                    continue loop;
+                }
+                else if (!initiator && !(parentAssertion instanceof 
InitiatorToken)
                         && !(parentAssertion instanceof 
InitiatorSignatureToken)
                         && !(parentAssertion instanceof SignatureToken)
                         && !(parentAssertion instanceof ProtectionToken)
@@ -76,7 +87,15 @@ public abstract class TokenAssertionStat
             } else if 
(WSSecurityTokenConstants.TokenUsage_Signature.equals(tokenUsage)) {
                     throw new WSSPolicyException("Illegal token usage!");
             } else if 
(WSSecurityTokenConstants.TokenUsage_MainEncryption.equals(tokenUsage)) {
-                if (!(parentAssertion instanceof RecipientToken)
+                if (initiator && !(parentAssertion instanceof InitiatorToken)
+                        && !(parentAssertion instanceof 
InitiatorEncryptionToken)
+                        && !(parentAssertion instanceof EncryptionToken)
+                        && !(parentAssertion instanceof ProtectionToken)
+                        && !(parentAssertion instanceof TransportToken)) {
+                    ignoreToken++;
+                    continue loop;
+                }
+                else if (!initiator && !(parentAssertion instanceof 
RecipientToken)
                         && !(parentAssertion instanceof 
RecipientEncryptionToken)
                         && !(parentAssertion instanceof EncryptionToken)
                         && !(parentAssertion instanceof ProtectionToken)
@@ -130,9 +149,40 @@ public abstract class TokenAssertionStat
         //WSP1.3, 5.1 Token Inclusion
         //todo do we need a global token cache to fullfill 
".../IncludeToken/Once" ?
         SPConstants.IncludeTokenType includeTokenType = 
abstractToken.getIncludeTokenType();
-        if (includeTokenType == 
SPConstants.IncludeTokenType.INCLUDE_TOKEN_NEVER) {
-            setErrorMessage("Token must not be included");
-            asserted = false;
+        boolean isIncludedInMessage = 
tokenSecurityEvent.getSecurityToken().isIncludedInMessage();
+        switch (includeTokenType) {
+            case INCLUDE_TOKEN_NEVER:
+                if (isIncludedInMessage) {
+                    setErrorMessage("Token must not be included");
+                    asserted = false;
+                }
+                break;
+            case INCLUDE_TOKEN_ONCE:
+                break;
+            case INCLUDE_TOKEN_ALWAYS_TO_RECIPIENT:
+                if (initiator && isIncludedInMessage) {
+                    setErrorMessage("Token must not be included");
+                    asserted = false;
+                } else if (!initiator && !isIncludedInMessage) {
+                    setErrorMessage("Token must be included");
+                    asserted = false;
+                }
+                break;
+            case INCLUDE_TOKEN_ALWAYS_TO_INITIATOR:
+                if (initiator && !isIncludedInMessage) {
+                    setErrorMessage("Token must be included");
+                    asserted = false;
+                } else if (!initiator && isIncludedInMessage) {
+                    setErrorMessage("Token must not be included");
+                    asserted = false;
+                }
+                break;
+            case INCLUDE_TOKEN_ALWAYS:
+                if (!isIncludedInMessage) {
+                    setErrorMessage("Token must be included");
+                    asserted = false;
+                }
+                break;
         }
 
         //WSP1.3, 5.3 Token Properties

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/TokenProtectionAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/TokenProtectionAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/TokenProtectionAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/TokenProtectionAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -96,7 +96,8 @@ public class TokenProtectionAssertionSta
                     securityToken = securityToken.getKeyWrappingToken();
                 }
 
-                if (isSignatureToken(securityToken)) {
+                //a token can only be signed if it is included in the message:
+                if (securityToken.isIncludedInMessage() && 
isSignatureToken(securityToken)) {
                     //[WSP1.3_8.9]
                     boolean signsItsSignatureToken = 
signsItsSignatureToken(securityToken);
                     if (protectTokens && !signsItsSignatureToken) {
@@ -183,7 +184,7 @@ public class TokenProtectionAssertionSta
                     signingSecurityToken = 
signingSecurityToken.getKeyWrappingToken();
                 }
                 //todo ATM me just check if the token signs a signature but we 
don't know if it's the main signature
-                if (signingSecurityToken == securityToken) {
+                if (signingSecurityToken != null && 
signingSecurityToken.getId().equals(securityToken.getId())) {
                     return true;
                 }
             }
@@ -202,7 +203,7 @@ public class TokenProtectionAssertionSta
                     signingSecurityToken = 
signingSecurityToken.getKeyWrappingToken();
                 }
 
-                if (signingSecurityToken == securityToken) {
+                if (signingSecurityToken != null && 
signingSecurityToken.getId().equals(securityToken.getId())) {
                     return true;
                 }
             }
@@ -234,7 +235,7 @@ public class TokenProtectionAssertionSta
                         while (elementSignatureToken != null && 
elementSignatureToken.getKeyWrappingToken() != null) {
                             elementSignatureToken = 
elementSignatureToken.getKeyWrappingToken();
                         }
-                        if (signedElementSecurityEvent.getSecurityToken() == 
securityToken) {
+                        if (elementSignatureToken != null && 
elementSignatureToken.getId().equals(securityToken.getId())) {
                             if 
(!signedElements.contains(signedElementSecurityEvent)) {
                                 signedElements.add(signedElementSecurityEvent);
                             }

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/UsernameTokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/UsernameTokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/UsernameTokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/UsernameTokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -37,8 +37,8 @@ import org.apache.xml.security.stax.secu
 
 public class UsernameTokenAssertionState extends TokenAssertionState {
 
-    public UsernameTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted) {
-        super(assertion, asserted);
+    public UsernameTokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted, boolean initiator) {
+        super(assertion, asserted, initiator);
     }
 
     @Override

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/X509TokenAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/X509TokenAssertionState.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/X509TokenAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/X509TokenAssertionState.java
 Sat Jun  8 13:20:18 2013
@@ -37,8 +37,8 @@ import java.security.cert.X509Certificat
 
 public class X509TokenAssertionState extends TokenAssertionState {
 
-    public X509TokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted) {
-        super(assertion, asserted);
+    public X509TokenAssertionState(AbstractSecurityAssertion assertion, 
boolean asserted, boolean initiator) {
+        super(assertion, asserted, initiator);
     }
 
     @Override

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/AbstractPolicyTestBase.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/AbstractPolicyTestBase.java?rev=1490977&r1=1490976&r2=1490977&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/AbstractPolicyTestBase.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/test/java/org/apache/wss4j/policy/stax/test/AbstractPolicyTestBase.java
 Sat Jun  8 13:20:18 2013
@@ -35,6 +35,7 @@ import org.apache.xml.security.binding.x
 import org.apache.xml.security.binding.xmldsig11.NamedCurveType;
 import org.apache.xml.security.exceptions.XMLSecurityException;
 import org.apache.xml.security.stax.config.Init;
+import org.apache.xml.security.stax.impl.util.IDGenerator;
 import org.testng.annotations.BeforeClass;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -105,7 +106,10 @@ public class AbstractPolicyTestBase exte
         final KeyStore keyStore = KeyStore.getInstance("jks");
         
keyStore.load(this.getClass().getClassLoader().getResourceAsStream("transmitter.jks"),
 "default".toCharArray());
 
-        X509SecurityTokenImpl x509SecurityToken = new 
X509SecurityTokenImpl(tokenType, null, null, null, "", 
WSSecurityTokenConstants.KeyIdentifier_ThumbprintIdentifier, null) {
+        X509SecurityTokenImpl x509SecurityToken =
+                new X509SecurityTokenImpl(
+                        tokenType, null, null, null, 
IDGenerator.generateID(null),
+                        
WSSecurityTokenConstants.KeyIdentifier_ThumbprintIdentifier, null, true) {
             @Override
             protected String getAlias() throws XMLSecurityException {
                 return keyAlias;
@@ -131,7 +135,9 @@ public class AbstractPolicyTestBase exte
     }
 
     public KerberosServiceSecurityTokenImpl 
getKerberosServiceSecurityToken(WSSecurityTokenConstants.TokenType tokenType) 
throws Exception {
-        return new KerberosServiceSecurityTokenImpl(null, null, null, null, 
"", WSSecurityTokenConstants.KeyIdentifier_SecurityTokenReference);
+        return new KerberosServiceSecurityTokenImpl(
+                null, null, null, null, IDGenerator.generateID(null),
+                
WSSecurityTokenConstants.KeyIdentifier_SecurityTokenDirectReference);
     }
 
     public HttpsSecurityTokenImpl 
getHttpsSecurityToken(WSSecurityTokenConstants.TokenType tokenType) throws 
Exception {
@@ -139,17 +145,17 @@ public class AbstractPolicyTestBase exte
     }
 
     public RsaKeyValueSecurityTokenImpl getRsaKeyValueSecurityToken() throws 
Exception {
-        return new RsaKeyValueSecurityTokenImpl(null, null, 
WSSecurityTokenConstants.KeyIdentifier_EmbeddedKeyIdentifierRef);
+        return new RsaKeyValueSecurityTokenImpl(null, null);
     }
 
     public DsaKeyValueSecurityTokenImpl getDsaKeyValueSecurityToken() throws 
Exception {
-        return new DsaKeyValueSecurityTokenImpl(null, null, 
WSSecurityTokenConstants.KeyIdentifier_EmbeddedKeyIdentifierRef);
+        return new DsaKeyValueSecurityTokenImpl(null, null);
     }
 
     public ECKeyValueSecurityTokenImpl getECKeyValueSecurityToken() throws 
Exception {
         ECKeyValueType ecKeyValueType = new ECKeyValueType();
         ecKeyValueType.setNamedCurve(new NamedCurveType());
-        return new ECKeyValueSecurityTokenImpl(ecKeyValueType, null, 
WSSecurityTokenConstants.KeyIdentifier_EmbeddedKeyIdentifierRef);
+        return new ECKeyValueSecurityTokenImpl(ecKeyValueType, null);
     }
 
     protected String loadResourceAsString(String resource, String encoding) 
throws IOException {


Reply via email to