Author: nandana
Date: Sun May 18 22:45:16 2008
New Revision: 657727

URL: http://svn.apache.org/viewvc?rev=657727&view=rev
Log:
RAMPART-168 using the attached and unattached references according to policy

Modified:
    
webservices/rampart/branches/java/1_4/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java

Modified: 
webservices/rampart/branches/java/1_4/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/branches/java/1_4/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java?rev=657727&r1=657726&r2=657727&view=diff
==============================================================================
--- 
webservices/rampart/branches/java/1_4/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
 (original)
+++ 
webservices/rampart/branches/java/1_4/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
 Sun May 18 22:45:16 2008
@@ -501,11 +501,25 @@
         if(policyToken.isDerivedKeys()) {
             try {
                 WSSecDKSign dkSign = new WSSecDKSign();
-
-                OMElement ref = tok.getAttachedReference();
-                if(ref == null) {
+                              
+                //Check for whether the token is attached in the message or not
+                boolean attached = false;
+                
+                if (SPConstants.INCLUDE_TOEKN_ALWAYS == 
policyToken.getInclusion() ||
+                    SPConstants.INCLUDE_TOKEN_ONCE == 
policyToken.getInclusion() ||
+                    (rmd.isInitiator() && 
SPConstants.INCLUDE_TOEKN_ALWAYS_TO_RECIPIENT 
+                            == policyToken.getInclusion())) {
+                    attached = true;
+                }
+                
+                // Setting the AttachedReference or the UnattachedReference 
according to the flag
+                OMElement ref;
+                if (attached == true) {
+                    ref = tok.getAttachedReference();
+                } else {
                     ref = tok.getUnattachedReference();
                 }
+                
                 if(ref != null) {
                     dkSign.setExternalKey(tok.getSecret(), (Element) 
                             doc.importNode((Element) ref, true));


Reply via email to