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/15 21:42:16 UTC

svn commit: r1301188 - in /webservices/wss4j/branches/swssf: streaming-ws-policy/src/main/java/org/swssf/policy/assertionStates/ streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/

Author: giger
Date: Thu Mar 15 20:42:16 2012
New Revision: 1301188

URL: http://svn.apache.org/viewvc?rev=1301188&view=rev
Log:
an IssuedToken is not a concrete token but can be a SamlToken, RelToken, etc. So handle it appropriate

Added:
    webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/IssuedTokenSecurityEvent.java   (with props)
Modified:
    webservices/wss4j/branches/swssf/streaming-ws-policy/src/main/java/org/swssf/policy/assertionStates/IssuedTokenAssertionState.java
    webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/RelTokenSecurityEvent.java
    webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/SamlTokenSecurityEvent.java
    webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/SecurityContextTokenSecurityEvent.java

Modified: webservices/wss4j/branches/swssf/streaming-ws-policy/src/main/java/org/swssf/policy/assertionStates/IssuedTokenAssertionState.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-policy/src/main/java/org/swssf/policy/assertionStates/IssuedTokenAssertionState.java?rev=1301188&r1=1301187&r2=1301188&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-policy/src/main/java/org/swssf/policy/assertionStates/IssuedTokenAssertionState.java (original)
+++ webservices/wss4j/branches/swssf/streaming-ws-policy/src/main/java/org/swssf/policy/assertionStates/IssuedTokenAssertionState.java Thu Mar 15 20:42:16 2012
@@ -21,18 +21,20 @@ package org.swssf.policy.assertionStates
 import org.apache.ws.secpolicy.WSSPolicyException;
 import org.apache.ws.secpolicy.model.AbstractSecurityAssertion;
 import org.apache.ws.secpolicy.model.AbstractToken;
-import org.swssf.wss.securityEvent.*;
+import org.apache.ws.secpolicy.model.IssuedToken;
+import org.swssf.wss.securityEvent.IssuedTokenSecurityEvent;
+import org.swssf.wss.securityEvent.SecurityEvent;
+import org.swssf.wss.securityEvent.TokenSecurityEvent;
 
 /**
+ * WSP1.3, 5.4.2 IssuedToken Assertion
+ *
  * @author $Author$
  * @version $Revision$ $Date$
  */
 
 public class IssuedTokenAssertionState extends TokenAssertionState {
 
-    //todo RequestSecurityTokenTemplate
-    //todo sowieso
-
     public IssuedTokenAssertionState(AbstractSecurityAssertion assertion, boolean asserted) {
         super(assertion, asserted);
     }
@@ -48,13 +50,22 @@ public class IssuedTokenAssertionState e
 
     @Override
     public boolean assertToken(TokenSecurityEvent tokenSecurityEvent, AbstractToken abstractToken) throws WSSPolicyException {
-        if (!(tokenSecurityEvent instanceof SamlTokenSecurityEvent)
-                && !(tokenSecurityEvent instanceof SecurityContextTokenSecurityEvent)
-                && !(tokenSecurityEvent instanceof RelTokenSecurityEvent)) {
+        if (!(tokenSecurityEvent instanceof IssuedTokenSecurityEvent)) {
             throw new WSSPolicyException("Expected a IssuedTokenSecurityEvent but got " + tokenSecurityEvent.getClass().getName());
         }
+
         setAsserted(true);
-        //todo
+
+        IssuedToken issuedToken = (IssuedToken) abstractToken;
+        IssuedTokenSecurityEvent issuedTokenSecurityEvent = (IssuedTokenSecurityEvent) tokenSecurityEvent;
+        if (issuedToken.getIssuerName() != null) {
+            if (!issuedToken.getIssuerName().equals(issuedTokenSecurityEvent.getIssuerName())) {
+                setAsserted(false);
+                setErrorMessage("IssuerName in Policy (" + issuedToken.getIssuerName() + ") didn't match with the one in the IssuedToken (" + issuedTokenSecurityEvent.getIssuerName() + ")");
+            }
+        }
+        //todo internal/external reference?
+
         return isAsserted();
     }
 }

Added: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/IssuedTokenSecurityEvent.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/IssuedTokenSecurityEvent.java?rev=1301188&view=auto
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/IssuedTokenSecurityEvent.java (added)
+++ webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/IssuedTokenSecurityEvent.java Thu Mar 15 20:42:16 2012
@@ -0,0 +1,31 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.swssf.wss.securityEvent;
+
+/**
+ * @author $Author$
+ * @version $Revision$ $Date$
+ */
+public abstract class IssuedTokenSecurityEvent extends TokenSecurityEvent {
+    public IssuedTokenSecurityEvent(Event securityEventType) {
+        super(securityEventType);
+    }
+
+    public abstract String getIssuerName();
+}

Propchange: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/IssuedTokenSecurityEvent.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/IssuedTokenSecurityEvent.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/RelTokenSecurityEvent.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/RelTokenSecurityEvent.java?rev=1301188&r1=1301187&r2=1301188&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/RelTokenSecurityEvent.java (original)
+++ webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/RelTokenSecurityEvent.java Thu Mar 15 20:42:16 2012
@@ -22,11 +22,21 @@ package org.swssf.wss.securityEvent;
  * @author $Author$
  * @version $Revision$ $Date$
  */
-public class RelTokenSecurityEvent extends TokenSecurityEvent {
+public class RelTokenSecurityEvent extends IssuedTokenSecurityEvent {
 
     //todo implement
+    private String issuerName;
 
     public RelTokenSecurityEvent() {
         super(Event.RelToken);
     }
+
+    @Override
+    public String getIssuerName() {
+        return issuerName;
+    }
+
+    public void setIssuerName(String issuerName) {
+        this.issuerName = issuerName;
+    }
 }

Modified: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/SamlTokenSecurityEvent.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/SamlTokenSecurityEvent.java?rev=1301188&r1=1301187&r2=1301188&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/SamlTokenSecurityEvent.java (original)
+++ webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/SamlTokenSecurityEvent.java Thu Mar 15 20:42:16 2012
@@ -25,7 +25,7 @@ import org.swssf.wss.impl.securityToken.
  * @author $Author$
  * @version $Revision$ $Date$
  */
-public class SamlTokenSecurityEvent extends TokenSecurityEvent {
+public class SamlTokenSecurityEvent extends IssuedTokenSecurityEvent {
 
     public SamlTokenSecurityEvent() {
         super(Event.SamlToken);
@@ -35,6 +35,7 @@ public class SamlTokenSecurityEvent exte
         return ((SAMLSecurityToken) getSecurityToken()).getSamlVersion();
     }
 
+    @Override
     public String getIssuerName() {
         return ((SAMLSecurityToken) getSecurityToken()).getIssuer();
     }

Modified: webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/SecurityContextTokenSecurityEvent.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/SecurityContextTokenSecurityEvent.java?rev=1301188&r1=1301187&r2=1301188&view=diff
==============================================================================
--- webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/SecurityContextTokenSecurityEvent.java (original)
+++ webservices/wss4j/branches/swssf/streaming-ws-security/src/main/java/org/swssf/wss/securityEvent/SecurityContextTokenSecurityEvent.java Thu Mar 15 20:42:16 2012
@@ -22,7 +22,7 @@ package org.swssf.wss.securityEvent;
  * @author $Author$
  * @version $Revision$ $Date$
  */
-public class SecurityContextTokenSecurityEvent extends TokenSecurityEvent {
+public class SecurityContextTokenSecurityEvent extends IssuedTokenSecurityEvent {
 
     private boolean externalUriRef;
     private String issuerName;