Author: coheigea
Date: Mon Feb 28 15:55:04 2011
New Revision: 1075392

URL: http://svn.apache.org/viewvc?rev=1075392&view=rev
Log:
[WSS-266] - Changed the validate method signature to return a Credential, for 
the case of when an authenticated credential is transformed.

Modified:
    
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/Credential.java
    
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/NoOpValidator.java
    
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/SamlAssertionValidator.java
    
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/SignatureTrustValidator.java
    
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/TimestampValidator.java
    
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/UsernameTokenValidator.java
    
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/Validator.java
    
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/token/BSTKerberosTest.java

Modified: 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/Credential.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/Credential.java?rev=1075392&r1=1075391&r2=1075392&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/Credential.java
 (original)
+++ 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/Credential.java
 Mon Feb 28 15:55:04 2011
@@ -29,9 +29,9 @@ import org.apache.ws.security.message.to
 import org.apache.ws.security.saml.ext.AssertionWrapper;
 
 /**
- * This class stores various Credential types that have to be validated by a 
Validator
- * implementation. It also stores an optional Principal object which can 
provide context
- * information to the validators.
+ * This class stores various Credential types that can be validated and/or 
returned by a
+ * Validator implementation. It also stores an optional Principal object which 
can provide 
+ * context information to the validators.
  */
 public class Credential {
     

Modified: 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/NoOpValidator.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/NoOpValidator.java?rev=1075392&r1=1075391&r2=1075392&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/NoOpValidator.java
 (original)
+++ 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/NoOpValidator.java
 Mon Feb 28 15:55:04 2011
@@ -36,8 +36,8 @@ public class NoOpValidator implements Va
      * @param credential the Credential to be validated
      * @throws WSSecurityException on a failed validation
      */
-    public void validate(Credential credential) throws WSSecurityException {
-        //
+    public Credential validate(Credential credential) throws 
WSSecurityException {
+        return credential;
     }
     
     /**

Modified: 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/SamlAssertionValidator.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/SamlAssertionValidator.java?rev=1075392&r1=1075391&r2=1075392&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/SamlAssertionValidator.java
 (original)
+++ 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/SamlAssertionValidator.java
 Mon Feb 28 15:55:04 2011
@@ -42,7 +42,7 @@ public class SamlAssertionValidator exte
      * @param credential the Credential to be validated
      * @throws WSSecurityException on a failed validation
      */
-    public void validate(Credential credential) throws WSSecurityException {
+    public Credential validate(Credential credential) throws 
WSSecurityException {
         if (credential == null || credential.getAssertion() == null) {
             throw new WSSecurityException(WSSecurityException.FAILURE, 
"noCredential");
         }
@@ -72,6 +72,7 @@ public class SamlAssertionValidator exte
             trustCredential.setCertificates(samlKeyInfo.getCerts());
             super.validate(trustCredential);
         }
+        return credential;
     }
     
 }

Modified: 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/SignatureTrustValidator.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/SignatureTrustValidator.java?rev=1075392&r1=1075391&r2=1075392&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/SignatureTrustValidator.java
 (original)
+++ 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/SignatureTrustValidator.java
 Mon Feb 28 15:55:04 2011
@@ -53,7 +53,7 @@ public class SignatureTrustValidator imp
      * @param credential the Credential to be validated
      * @throws WSSecurityException on a failed validation
      */
-    public void validate(Credential credential) throws WSSecurityException {
+    public Credential validate(Credential credential) throws 
WSSecurityException {
         if (credential == null) {
             throw new WSSecurityException(WSSecurityException.FAILURE, 
"noCredential");
         }
@@ -72,13 +72,13 @@ public class SignatureTrustValidator imp
                 trust = verifyTrustInCerts(certs);
             }
             if (trust) {
-                return;
+                return credential;
             }
         }
         if (publicKey != null) {
             boolean trust = validatePublicKey(publicKey);
             if (trust) {
-                return;
+                return credential;
             }
         }
         throw new 
WSSecurityException(WSSecurityException.FAILED_AUTHENTICATION);

Modified: 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/TimestampValidator.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/TimestampValidator.java?rev=1075392&r1=1075391&r2=1075392&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/TimestampValidator.java
 (original)
+++ 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/TimestampValidator.java
 Mon Feb 28 15:55:04 2011
@@ -40,7 +40,7 @@ public class TimestampValidator implemen
      * @param credential the Credential to be validated
      * @throws WSSecurityException on a failed validation
      */
-    public void validate(Credential credential) throws WSSecurityException {
+    public Credential validate(Credential credential) throws 
WSSecurityException {
         if (credential == null || credential.getTimestamp() == null) {
             throw new WSSecurityException(WSSecurityException.FAILURE, 
"noCredential");
         }
@@ -65,6 +65,7 @@ public class TimestampValidator implemen
                 new Object[] {"The security semantics of the message have 
expired"}
             );
         }
+        return credential;
     }
     
     /**

Modified: 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/UsernameTokenValidator.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/UsernameTokenValidator.java?rev=1075392&r1=1075391&r2=1075392&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/UsernameTokenValidator.java
 (original)
+++ 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/UsernameTokenValidator.java
 Mon Feb 28 15:55:04 2011
@@ -59,7 +59,7 @@ public class UsernameTokenValidator impl
      * @param credential the Credential to be validated
      * @throws WSSecurityException on a failed validation
      */
-    public void validate(Credential credential) throws WSSecurityException {
+    public Credential validate(Credential credential) throws 
WSSecurityException {
         if (credential == null || credential.getUsernametoken() == null) {
             throw new WSSecurityException(WSSecurityException.FAILURE, 
"noCredential");
         }
@@ -112,6 +112,7 @@ public class UsernameTokenValidator impl
         } else {
             verifyUnknownPassword(usernameToken);
         }
+        return credential;
     }
     
     /**

Modified: 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/Validator.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/Validator.java?rev=1075392&r1=1075391&r2=1075392&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/Validator.java
 (original)
+++ 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/validate/Validator.java
 Mon Feb 28 15:55:04 2011
@@ -32,11 +32,15 @@ import org.apache.ws.security.components
 public interface Validator {
     
     /**
-     * Validate the credential argument. 
+     * Validate the credential argument. This method returns a Credential 
instance that
+     * represents the validated credential. This instance can be the same as 
the instance
+     * that was validated, or it can represent some transformation of the 
initial Credential
+     * instance.
      * @param credential the Credential to be validated
+     * @return a validated Credential
      * @throws WSSecurityException on a failed validation
      */
-    public void validate(Credential credential) throws WSSecurityException;
+    public Credential validate(Credential credential) throws 
WSSecurityException;
     
     /**
      * Set a Crypto instance used to validate credentials

Modified: 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/token/BSTKerberosTest.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/token/BSTKerberosTest.java?rev=1075392&r1=1075391&r2=1075392&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/token/BSTKerberosTest.java
 (original)
+++ 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/token/BSTKerberosTest.java
 Mon Feb 28 15:55:04 2011
@@ -262,7 +262,7 @@ public class BSTKerberosTest extends org
      */
     private static class KerberosValidator implements Validator {
 
-        public void validate(Credential credential) throws WSSecurityException 
{
+        public Credential validate(Credential credential) throws 
WSSecurityException {
             BinarySecurity token = credential.getBinarySecurityToken();
             if (token == null) {
                 throw new WSSecurityException(WSSecurityException.FAILURE);
@@ -276,6 +276,7 @@ public class BSTKerberosTest extends org
             if (!Arrays.equals(tokenBytes, "12345678".getBytes())) {
                 throw new 
WSSecurityException(WSSecurityException.FAILED_AUTHENTICATION);
             }
+            return credential;
         }
         
         public void setCrypto(Crypto crypto) {


Reply via email to