Author: nandana
Date: Sun May 18 22:44:42 2008
New Revision: 657726
URL: http://svn.apache.org/viewvc?rev=657726&view=rev
Log:
RAMPART-168 using the attached and unattached references according to policy
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
Modified:
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java?rev=657726&r1=657725&r2=657726&view=diff
==============================================================================
---
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
(original)
+++
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
Sun May 18 22:44:42 2008
@@ -377,7 +377,7 @@
//Add the UT
Element elem = utBuilder.getUsernameTokenElement();
- RampartUtil.insertSiblingAfter(rmd,
this.getInsertionLocation(), elem);
+ elem = RampartUtil.insertSiblingAfter(rmd,
this.getInsertionLocation(), elem);
encryptedTokensIdList.add(utBuilder.getId());
@@ -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));