You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by na...@apache.org on 2008/08/05 11:33:57 UTC
svn commit: r682650 -
/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AlgorithmSuiteBuilder.java
Author: nandana
Date: Tue Aug 5 02:33:56 2008
New Revision: 682650
URL: http://svn.apache.org/viewvc?rev=682650&view=rev
Log:
RAMPART-182 Applying the patch from Stefan.
Thanks Stefan.
Modified:
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AlgorithmSuiteBuilder.java
Modified: webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AlgorithmSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AlgorithmSuiteBuilder.java?rev=682650&r1=682649&r2=682650&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AlgorithmSuiteBuilder.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AlgorithmSuiteBuilder.java Tue Aug 5 02:33:56 2008
@@ -15,9 +15,14 @@
*/
package org.apache.ws.secpolicy12.builders;
+import java.util.Iterator;
+import java.util.List;
+
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyEngine;
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.ws.secpolicy.SPConstants;
import org.apache.ws.secpolicy.SP12Constants;
@@ -29,16 +34,30 @@
public class AlgorithmSuiteBuilder implements AssertionBuilder {
public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+
AlgorithmSuite algorithmSuite = new AlgorithmSuite(SPConstants.SP_V12);
- OMElement policyElem = element.getFirstElement();
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+ policy = (Policy) policy.normalize(false);
+
+ Iterator iterAlterns = policy.getAlternatives();
+ List assertions = ((List) iterAlterns.next());
+
+ processAlternative(assertions, algorithmSuite);
+
+ return algorithmSuite;
+ }
+
+ private void processAlternative(List assertions, AlgorithmSuite algorithmSuite) {
+ Iterator iterator = assertions.iterator();
+ Assertion assertion = ((Assertion) iterator.next());
+ String name = assertion.getName().getLocalPart();
try {
- algorithmSuite.setAlgorithmSuite(policyElem.getFirstElement().getLocalName());
+ algorithmSuite.setAlgorithmSuite(name);
} catch (WSSPolicyException e) {
throw new IllegalArgumentException(e);
}
- return algorithmSuite;
}
public QName[] getKnownElements() {