You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by we...@apache.org on 2004/05/31 16:35:29 UTC

cvs commit: ws-fx/wss4j/src/org/apache/ws/security WSSecurityEngine.java WSSecurityEngineResult.java

werner      2004/05/31 07:35:29

  Modified:    wss4j/src/org/apache/ws/security WSSecurityEngine.java
                        WSSecurityEngineResult.java
  Log:
  Enhancement to forward the detected SAML token to the application.
  
  Revision  Changes    Path
  1.23      +6 -6      ws-fx/wss4j/src/org/apache/ws/security/WSSecurityEngine.java
  
  Index: WSSecurityEngine.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/wss4j/src/org/apache/ws/security/WSSecurityEngine.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- WSSecurityEngine.java	26 May 2004 19:15:37 -0000	1.22
  +++ WSSecurityEngine.java	31 May 2004 14:35:29 -0000	1.23
  @@ -369,10 +369,10 @@
                  if (doDebug) {
                      log.debug("Found SAML Assertion element");
                  }
  -               handleSAMLToken((Element) elem);
  +               SAMLAssertion assertion = handleSAMLToken((Element) elem);
                  wsDocInfo.setAssertion((Element) elem);
                  returnResults.add(0,
  -                       new WSSecurityEngineResult(null, WSConstants.ST_UNSIGNED, null));
  +                       new WSSecurityEngineResult(WSConstants.ST_UNSIGNED, assertion));
   			} else if (el.equals(TIMESTAMP)) {
   				if (doDebug) {
   					log.debug("Found Timestamp list element");
  @@ -763,7 +763,7 @@
           return principal;
       }
   
  -    public void handleSAMLToken(Element token) throws WSSecurityException {
  +    public SAMLAssertion handleSAMLToken(Element token) throws WSSecurityException {
           boolean result = false;
           SAMLAssertion assertion = null;
           try {
  @@ -773,13 +773,13 @@
                   log.debug("SAML Assertion issuer " + assertion.getIssuer());
               }
           } catch (SAMLException e) {
  -            // TODO: Fix me.
  -            e.printStackTrace();  
  +            throw new WSSecurityException(WSSecurityException.FAILURE,
  +                    "invalidSAMLsecurity", null, e);  
           }
           if (!result) {
               throw new WSSecurityException(WSSecurityException.FAILED_AUTHENTICATION);
           }
  -        return;
  +        return assertion;
       }
       
       public void handleEncryptedKey(Element xencEncryptedKey, CallbackHandler cb, Crypto crypto) throws WSSecurityException {
  
  
  
  1.3       +18 -6     ws-fx/wss4j/src/org/apache/ws/security/WSSecurityEngineResult.java
  
  Index: WSSecurityEngineResult.java
  ===================================================================
  RCS file: /home/cvs/ws-fx/wss4j/src/org/apache/ws/security/WSSecurityEngineResult.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- WSSecurityEngineResult.java	18 Mar 2004 20:13:08 -0000	1.2
  +++ WSSecurityEngineResult.java	31 May 2004 14:35:29 -0000	1.3
  @@ -17,6 +17,7 @@
   
   package org.apache.ws.security;
   
  +import org.opensaml.SAMLAssertion;
   import java.security.Principal;
   import java.security.cert.X509Certificate;
   
  @@ -29,18 +30,23 @@
   	private int action;
   	private Principal principal;
   	private X509Certificate cert;
  +	private SAMLAssertion assertion;
   
  -	WSSecurityEngineResult(
  -		Principal princ,
  -		int act,
  -		X509Certificate certificate) {
  +    WSSecurityEngineResult(int act, SAMLAssertion ass) {
  +		principal = null;
  +        cert = null;
  +		action = act;
  +		assertion = ass;
  +	}
  +
  +    WSSecurityEngineResult(Principal princ, int act, X509Certificate certificate) {
   		principal = princ;
   		action = act;
   		cert = certificate;
   	}
   	/**
  -	 * @return the actions vector. These actions were performed
  -	 * by the the security engine.
  +	 * @return the actions vector. These actions were performed by the the
  +	 *         security engine.
   	 */
   	public int getAction() {
   		return action;
  @@ -61,4 +67,10 @@
   		return cert;
   	}
   
  +	/**
  +	 * @return Returns the assertion.
  +	 */
  +	public SAMLAssertion getAssertion() {
  +		return assertion;
  +	}
   }