You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2008/07/09 22:11:48 UTC
svn commit: r675332 [3/6] - in /cxf/trunk:
common/common/src/main/java/org/apache/cxf/helpers/
rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/
rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/
rt/ws/security/src/m...
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SignedPartsBuilder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SignedPartsBuilder.java?rev=675332&r1=674910&r2=675332&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SignedPartsBuilder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SignedPartsBuilder.java Wed Jul 9 13:11:45 2008
@@ -1,69 +1,94 @@
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
-package org.apache.ws.secpolicy11.builders;
+package org.apache.cxf.ws.security.policy.builders;
-import java.util.Iterator;
+import java.util.Arrays;
+import java.util.List;
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMAttribute;
-import org.apache.axiom.om.OMElement;
-import org.apache.neethi.Assertion;
-import org.apache.neethi.AssertionBuilderFactory;
-import org.apache.neethi.builders.AssertionBuilder;
-import org.apache.ws.secpolicy.SP11Constants;
-import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.model.Header;
-import org.apache.ws.secpolicy.model.SignedEncryptedParts;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+import org.apache.cxf.ws.policy.AssertionBuilder;
+import org.apache.cxf.ws.policy.PolicyAssertion;
+import org.apache.cxf.ws.security.policy.SP11Constants;
+import org.apache.cxf.ws.security.policy.SP12Constants;
+import org.apache.cxf.ws.security.policy.SPConstants;
+import org.apache.cxf.ws.security.policy.model.Header;
+import org.apache.cxf.ws.security.policy.model.SignedEncryptedParts;
+
public class SignedPartsBuilder implements AssertionBuilder {
+ private static final List<QName> KNOWN_ELEMENTS
+ = Arrays.asList(SP11Constants.SIGNED_PARTS, SP12Constants.SIGNED_PARTS);
+
+ public List<QName> getKnownElements() {
+ return KNOWN_ELEMENTS;
+ }
+
+
+ public PolicyAssertion build(Element element)
+ throws IllegalArgumentException {
- public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
- SignedEncryptedParts signedEncryptedParts = new SignedEncryptedParts(true, SPConstants.SP_V11);
-
- for (Iterator iterator = element.getChildElements(); iterator.hasNext();) {
- processElement((OMElement) iterator.next(), signedEncryptedParts);
+ SPConstants consts = SP11Constants.SP_NS.equals(element.getNamespaceURI())
+ ? SP11Constants.INSTANCE : SP12Constants.INSTANCE;
+
+ SignedEncryptedParts signedEncryptedParts = new SignedEncryptedParts(true, consts);
+
+
+ Node nd = element.getFirstChild();
+ while (nd != null) {
+ if (nd instanceof Element) {
+ processElement((Element)nd, signedEncryptedParts);
+ }
+ nd = nd.getNextSibling();
}
return signedEncryptedParts;
}
-
- public QName[] getKnownElements() {
- return new QName[] {SP11Constants.SIGNED_PARTS};
- }
- private void processElement(OMElement element, SignedEncryptedParts parent) {
-
- QName name = element.getQName();
-
- if (SP11Constants.HEADER.equals(name)) {
+
+ private void processElement(Element element, SignedEncryptedParts parent) {
+
+ if ("Header".equals(element.getLocalName())) {
Header header = new Header();
-
- OMAttribute nameAttribute = element.getAttribute(SPConstants.NAME);
- if( nameAttribute != null ) {
- header.setName(nameAttribute.getAttributeValue());
+
+ String nameAttribute = element.getAttribute(SPConstants.NAME);
+ if (nameAttribute != null) {
+ header.setName(nameAttribute);
}
-
- OMAttribute namespaceAttribute = element.getAttribute(SPConstants.NAMESPACE);
- header.setNamespace(namespaceAttribute.getAttributeValue());
-
+
+ String namespaceAttribute = element.getAttribute(SPConstants.NAMESPACE);
+ header.setNamespace(namespaceAttribute);
+
parent.addHeader(header);
-
- } else if (SP11Constants.BODY.equals(name)) {
- parent.setBody(true);
- }
+
+ } else if ("Body".equals(element.getLocalName())) {
+ parent.setBody(true);
+ }
}
+
+
+ public PolicyAssertion buildCompatible(PolicyAssertion a, PolicyAssertion b) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Added: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokens12Builder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokens12Builder.java?rev=675332&view=auto
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokens12Builder.java (added)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokens12Builder.java Wed Jul 9 13:11:45 2008
@@ -0,0 +1,146 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.ws.security.policy.builders;
+
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.ws.policy.AssertionBuilder;
+import org.apache.cxf.ws.policy.PolicyAssertion;
+import org.apache.cxf.ws.policy.PolicyBuilder;
+import org.apache.cxf.ws.security.policy.SP12Constants;
+import org.apache.cxf.ws.security.policy.SPConstants.SupportTokenType;
+import org.apache.cxf.ws.security.policy.model.AlgorithmSuite;
+import org.apache.cxf.ws.security.policy.model.SignedEncryptedElements;
+import org.apache.cxf.ws.security.policy.model.SignedEncryptedParts;
+import org.apache.cxf.ws.security.policy.model.SupportingToken;
+import org.apache.cxf.ws.security.policy.model.Token;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.Policy;
+
+
+public class SupportingTokens12Builder implements AssertionBuilder {
+ private static final List<QName> KNOWN_ELEMENTS
+ = Arrays.asList(SP12Constants.SUPPORTING_TOKENS,
+ SP12Constants.SIGNED_SUPPORTING_TOKENS,
+ SP12Constants.ENDORSING_SUPPORTING_TOKENS,
+ SP12Constants.SIGNED_ENDORSING_SUPPORTING_TOKENS,
+ SP12Constants.ENCRYPTED_SUPPORTING_TOKENS,
+ SP12Constants.SIGNED_ENCRYPTED_SUPPORTING_TOKENS,
+ SP12Constants.ENDORSING_ENCRYPTED_SUPPORTING_TOKENS,
+ SP12Constants.SIGNED_ENDORSING_ENCRYPTED_SUPPORTING_TOKENS
+ );
+
+
+ PolicyBuilder builder;
+ public SupportingTokens12Builder(PolicyBuilder b) {
+ builder = b;
+ }
+ public List<QName> getKnownElements() {
+ return KNOWN_ELEMENTS;
+ }
+
+
+ public PolicyAssertion build(Element element) {
+ QName name = DOMUtils.getElementQName(element);
+ SupportingToken supportingToken = null;
+
+ if (SP12Constants.SUPPORTING_TOKENS.equals(name)) {
+ supportingToken = new SupportingToken(
+ SupportTokenType.SUPPORTING_TOKEN_SUPPORTING, SP12Constants.INSTANCE);
+ } else if (SP12Constants.SIGNED_SUPPORTING_TOKENS.equals(name)) {
+ supportingToken = new SupportingToken(
+ SupportTokenType.SUPPORTING_TOKEN_SIGNED, SP12Constants.INSTANCE);
+ } else if (SP12Constants.ENDORSING_SUPPORTING_TOKENS.equals(name)) {
+ supportingToken = new SupportingToken(
+ SupportTokenType.SUPPORTING_TOKEN_ENDORSING, SP12Constants.INSTANCE);
+ } else if (SP12Constants.SIGNED_ENDORSING_SUPPORTING_TOKENS.equals(name)) {
+ supportingToken = new SupportingToken(
+ SupportTokenType.SUPPORTING_TOKEN_SIGNED_ENDORSING, SP12Constants.INSTANCE);
+ } else if (SP12Constants.ENCRYPTED_SUPPORTING_TOKENS.equals(name)) {
+ supportingToken = new SupportingToken(
+ SupportTokenType.SUPPORTING_TOKEN_ENCRYPTED, SP12Constants.INSTANCE);
+ } else if (SP12Constants.SIGNED_ENCRYPTED_SUPPORTING_TOKENS.equals(name)) {
+ supportingToken = new SupportingToken(
+ SupportTokenType.SUPPORTING_TOKEN_SIGNED_ENCRYPTED, SP12Constants.INSTANCE);
+ } else if (SP12Constants.ENDORSING_ENCRYPTED_SUPPORTING_TOKENS.equals(name)) {
+ supportingToken = new SupportingToken(
+ SupportTokenType.SUPPORTING_TOKEN_ENDORSING_ENCRYPTED, SP12Constants.INSTANCE);
+ } else if (SP12Constants.SIGNED_ENDORSING_ENCRYPTED_SUPPORTING_TOKENS.equals(name)) {
+ supportingToken = new SupportingToken(
+ SupportTokenType.SUPPORTING_TOKEN_SIGNED_ENDORSING_ENCRYPTED, SP12Constants.INSTANCE);
+ }
+
+ Policy policy = builder.getPolicy(DOMUtils.getFirstElement(element));
+ policy = (Policy) policy.normalize(false);
+
+ for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative((List) iterator.next(), supportingToken);
+ /*
+ * for the moment we will say there should be only one alternative
+ */
+ break;
+ }
+
+ return supportingToken;
+ }
+
+
+ private void processAlternative(List assertions, SupportingToken supportingToken) {
+
+ for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+
+ Assertion primitive = (Assertion) iterator.next();
+ QName qname = primitive.getName();
+
+ if (SP12Constants.ALGORITHM_SUITE.equals(qname)) {
+ supportingToken.setAlgorithmSuite((AlgorithmSuite) primitive);
+
+ } else if (SP12Constants.SIGNED_PARTS.equals(qname)) {
+ supportingToken
+ .setSignedParts((SignedEncryptedParts) primitive);
+
+ } else if (SP12Constants.SIGNED_ELEMENTS.equals(qname)) {
+ supportingToken
+ .setSignedElements((SignedEncryptedElements) primitive);
+
+ } else if (SP12Constants.ENCRYPTED_PARTS.equals(qname)) {
+ supportingToken
+ .setEncryptedParts((SignedEncryptedParts) primitive);
+
+ } else if (SP12Constants.ENCRYPTED_ELEMENTS.equals(qname)) {
+ supportingToken
+ .setEncryptedElements((SignedEncryptedElements) primitive);
+
+ } else if (primitive instanceof Token) {
+ supportingToken.addToken((Token) primitive);
+ }
+ }
+ }
+ public PolicyAssertion buildCompatible(PolicyAssertion a, PolicyAssertion b) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
Propchange: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokens12Builder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokens12Builder.java
------------------------------------------------------------------------------
svn:executable = *
Propchange: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokens12Builder.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokens12Builder.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokensBuilder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokensBuilder.java?rev=675332&r1=674910&r2=675332&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokensBuilder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SupportingTokensBuilder.java Wed Jul 9 13:11:45 2008
@@ -1,106 +1,130 @@
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
-package org.apache.ws.secpolicy11.builders;
+package org.apache.cxf.ws.security.policy.builders;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMElement;
+import org.w3c.dom.Element;
+
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.ws.policy.AssertionBuilder;
+import org.apache.cxf.ws.policy.PolicyAssertion;
+import org.apache.cxf.ws.policy.PolicyBuilder;
+import org.apache.cxf.ws.security.policy.SP11Constants;
+import org.apache.cxf.ws.security.policy.SPConstants.SupportTokenType;
+import org.apache.cxf.ws.security.policy.model.AlgorithmSuite;
+import org.apache.cxf.ws.security.policy.model.SignedEncryptedElements;
+import org.apache.cxf.ws.security.policy.model.SignedEncryptedParts;
+import org.apache.cxf.ws.security.policy.model.SupportingToken;
+import org.apache.cxf.ws.security.policy.model.Token;
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.SP11Constants;
-import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.model.AlgorithmSuite;
-import org.apache.ws.secpolicy.model.SignedEncryptedElements;
-import org.apache.ws.secpolicy.model.SignedEncryptedParts;
-import org.apache.ws.secpolicy.model.SupportingToken;
-import org.apache.ws.secpolicy.model.Token;
+
public class SupportingTokensBuilder implements AssertionBuilder {
+ private static final List<QName> KNOWN_ELEMENTS
+ = Arrays.asList(SP11Constants.SUPPORTING_TOKENS,
+ SP11Constants.SIGNED_SUPPORTING_TOKENS,
+ SP11Constants.ENDORSING_SUPPORTING_TOKENS,
+ SP11Constants.SIGNED_ENDORSING_SUPPORTING_TOKENS);
+
+
+ PolicyBuilder builder;
+ public SupportingTokensBuilder(PolicyBuilder b) {
+ builder = b;
+ }
+ public List<QName> getKnownElements() {
+ return KNOWN_ELEMENTS;
+ }
- public Assertion build(OMElement element, AssertionBuilderFactory factory)
- throws IllegalArgumentException {
- QName name = element.getQName();
+
+
+ public PolicyAssertion build(Element element)
+ throws IllegalArgumentException {
+ QName name = DOMUtils.getElementQName(element);
SupportingToken supportingToken = null;
if (SP11Constants.SUPPORTING_TOKENS.equals(name)) {
- supportingToken = new SupportingToken(SPConstants.SUPPORTING_TOKEN_SUPPORTING, SPConstants.SP_V11);
+ supportingToken = new SupportingToken(SupportTokenType.SUPPORTING_TOKEN_SUPPORTING,
+ SP11Constants.INSTANCE);
} else if (SP11Constants.SIGNED_SUPPORTING_TOKENS.equals(name)) {
- supportingToken = new SupportingToken(SPConstants.SUPPORTING_TOKEN_SIGNED, SPConstants.SP_V11);
+ supportingToken = new SupportingToken(SupportTokenType.SUPPORTING_TOKEN_SIGNED,
+ SP11Constants.INSTANCE);
} else if (SP11Constants.ENDORSING_SUPPORTING_TOKENS.equals(name)) {
- supportingToken = new SupportingToken(SPConstants.SUPPORTING_TOKEN_ENDORSING, SPConstants.SP_V11);
+ supportingToken = new SupportingToken(SupportTokenType.SUPPORTING_TOKEN_ENDORSING,
+ SP11Constants.INSTANCE);
} else if (SP11Constants.SIGNED_ENDORSING_SUPPORTING_TOKENS.equals(name)) {
- supportingToken = new SupportingToken(SPConstants.SUPPORTING_TOKEN_SIGNED_ENDORSING, SPConstants.SP_V11);
+ supportingToken = new SupportingToken(SupportTokenType.SUPPORTING_TOKEN_SIGNED_ENDORSING,
+ SP11Constants.INSTANCE);
}
- Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
- policy = (Policy) policy.normalize(false);
+ Policy policy = builder.getPolicy(DOMUtils.getFirstElement(element));
+ policy = (Policy)policy.normalize(false);
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), supportingToken);
+ processAlternative((List)iterator.next(), supportingToken);
/*
- * for the moment we will say there should be only one alternative
+ * for the moment we will say there should be only one alternative
*/
- break;
+ break;
}
return supportingToken;
}
- public QName[] getKnownElements() {
- return new QName[] { SP11Constants.SUPPORTING_TOKENS,
- SP11Constants.SIGNED_SUPPORTING_TOKENS,
- SP11Constants.ENDORSING_SUPPORTING_TOKENS,
- SP11Constants.SIGNED_ENDORSING_SUPPORTING_TOKENS};
- }
private void processAlternative(List assertions, SupportingToken supportingToken) {
-
+
for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- Assertion primitive = (Assertion) iterator.next();
+ Assertion primitive = (Assertion)iterator.next();
QName qname = primitive.getName();
if (SP11Constants.ALGORITHM_SUITE.equals(qname)) {
- supportingToken.setAlgorithmSuite((AlgorithmSuite) primitive);
+ supportingToken.setAlgorithmSuite((AlgorithmSuite)primitive);
} else if (SP11Constants.SIGNED_PARTS.equals(qname)) {
- supportingToken
- .setSignedParts((SignedEncryptedParts) primitive);
+ supportingToken.setSignedParts((SignedEncryptedParts)primitive);
} else if (SP11Constants.SIGNED_ELEMENTS.equals(qname)) {
- supportingToken
- .setSignedElements((SignedEncryptedElements) primitive);
+ supportingToken.setSignedElements((SignedEncryptedElements)primitive);
} else if (SP11Constants.ENCRYPTED_PARTS.equals(qname)) {
- supportingToken
- .setEncryptedParts((SignedEncryptedParts) primitive);
+ supportingToken.setEncryptedParts((SignedEncryptedParts)primitive);
} else if (SP11Constants.ENCRYPTED_ELEMENTS.equals(qname)) {
- supportingToken
- .setEncryptedElements((SignedEncryptedElements) primitive);
+ supportingToken.setEncryptedElements((SignedEncryptedElements)primitive);
} else if (primitive instanceof Token) {
- supportingToken.addToken((Token) primitive);
+ supportingToken.addToken((Token)primitive);
}
}
}
+
+
+
+ public PolicyAssertion buildCompatible(PolicyAssertion a, PolicyAssertion b) {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SymmetricBindingBuilder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SymmetricBindingBuilder.java?rev=675332&r1=674910&r2=675332&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SymmetricBindingBuilder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/SymmetricBindingBuilder.java Wed Jul 9 13:11:45 2008
@@ -1,92 +1,120 @@
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
-package org.apache.ws.secpolicy11.builders;
+package org.apache.cxf.ws.security.policy.builders;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMElement;
+import org.w3c.dom.Element;
+
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.ws.policy.AssertionBuilder;
+import org.apache.cxf.ws.policy.PolicyAssertion;
+import org.apache.cxf.ws.policy.PolicyBuilder;
+import org.apache.cxf.ws.security.policy.SP11Constants;
+import org.apache.cxf.ws.security.policy.SP12Constants;
+import org.apache.cxf.ws.security.policy.SPConstants;
+import org.apache.cxf.ws.security.policy.model.AlgorithmSuite;
+import org.apache.cxf.ws.security.policy.model.Layout;
+import org.apache.cxf.ws.security.policy.model.ProtectionToken;
+import org.apache.cxf.ws.security.policy.model.SymmetricBinding;
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.SP11Constants;
-import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.model.AlgorithmSuite;
-import org.apache.ws.secpolicy.model.Layout;
-import org.apache.ws.secpolicy.model.ProtectionToken;
-import org.apache.ws.secpolicy.model.SymmetricBinding;
-public class SymmetricBindingBuilder implements AssertionBuilder {
- public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
- SymmetricBinding symmetricBinding = new SymmetricBinding(SPConstants.SP_V11);
-
- Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
- policy = (Policy) policy.normalize(false);
+public class SymmetricBindingBuilder implements AssertionBuilder {
+ private static final List<QName> KNOWN_ELEMENTS
+ = Arrays.asList(SP11Constants.SYMMETRIC_BINDING, SP12Constants.SYMMETRIC_BINDING);
+
+ PolicyBuilder builder;
+ public SymmetricBindingBuilder(PolicyBuilder b) {
+ builder = b;
+ }
+ public List<QName> getKnownElements() {
+ return KNOWN_ELEMENTS;
+ }
+
+ public PolicyAssertion build(Element element)
+ throws IllegalArgumentException {
+ SPConstants consts = SP11Constants.SP_NS.equals(element.getNamespaceURI())
+ ? SP11Constants.INSTANCE : SP12Constants.INSTANCE;
+
+ SymmetricBinding symmetricBinding = new SymmetricBinding(consts);
+
+ Policy policy = builder.getPolicy(DOMUtils.getFirstElement(element));
+ policy = (Policy)policy.normalize(false);
+
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternatives((List) iterator.next(), symmetricBinding);
-
+ processAlternatives((List)iterator.next(), symmetricBinding, consts);
+
/*
* since there should be only one alternative ..
*/
- break;
+ break;
}
return symmetricBinding;
}
- public QName[] getKnownElements() {
- return new QName[] {SP11Constants.SYMMETRIC_BINDING};
- }
-
- private void processAlternatives(List assertions, SymmetricBinding symmetricBinding) {
+
+ private void processAlternatives(List assertions, SymmetricBinding symmetricBinding, SPConstants consts) {
Assertion assertion;
QName name;
-
+
for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
+ assertion = (Assertion)iterator.next();
name = assertion.getName();
-
- if (SP11Constants.ALGORITHM_SUITE.equals(name)) {
- symmetricBinding.setAlgorithmSuite((AlgorithmSuite) assertion);
-
- } else if (SP11Constants.LAYOUT.equals(name)) {
- symmetricBinding.setLayout((Layout) assertion);
-
- } else if (SP11Constants.INCLUDE_TIMESTAMP.equals(name)) {
+
+ if (!consts.getNamespace().equals(name.getNamespaceURI())) {
+ continue;
+ }
+
+ if (SPConstants.ALGO_SUITE.equals(name.getLocalPart())) {
+ symmetricBinding.setAlgorithmSuite((AlgorithmSuite)assertion);
+
+ } else if (SPConstants.LAYOUT.equals(name.getLocalPart())) {
+ symmetricBinding.setLayout((Layout)assertion);
+
+ } else if (SPConstants.INCLUDE_TIMESTAMP.equals(name.getLocalPart())) {
symmetricBinding.setIncludeTimestamp(true);
-
- } else if (SP11Constants.PROTECTION_TOKEN.equals(name)) {
- symmetricBinding.setProtectionToken((ProtectionToken) assertion);
-
+
+ } else if (SPConstants.PROTECTION_TOKEN.equals(name.getLocalPart())) {
+ symmetricBinding.setProtectionToken((ProtectionToken)assertion);
+
} else if (SPConstants.ENCRYPT_BEFORE_SIGNING.equals(name.getLocalPart())) {
symmetricBinding.setProtectionOrder(SPConstants.ENCRYPT_BEFORE_SIGNING);
-
+
} else if (SPConstants.SIGN_BEFORE_ENCRYPTING.equals(name.getLocalPart())) {
symmetricBinding.setProtectionOrder(SPConstants.SIGN_BEFORE_ENCRYPTING);
-
+
} else if (SPConstants.ONLY_SIGN_ENTIRE_HEADERS_AND_BODY.equals(name.getLocalPart())) {
symmetricBinding.setEntireHeadersAndBodySignatures(true);
- } else if (SP11Constants.ENCRYPT_SIGNATURE.equals(name)) {
+ } else if (SPConstants.ENCRYPT_SIGNATURE.equals(name.getLocalPart())) {
symmetricBinding.setSignatureProtection(true);
}
- }
+ }
+ }
+ public PolicyAssertion buildCompatible(PolicyAssertion a, PolicyAssertion b) {
+ // TODO Auto-generated method stub
+ return null;
}
}
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/TransportBindingBuilder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/TransportBindingBuilder.java?rev=675332&r1=674910&r2=675332&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/TransportBindingBuilder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/TransportBindingBuilder.java Wed Jul 9 13:11:45 2008
@@ -1,88 +1,114 @@
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
-package org.apache.ws.secpolicy11.builders;
+package org.apache.cxf.ws.security.policy.builders;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMElement;
+import org.w3c.dom.Element;
+
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.ws.policy.AssertionBuilder;
+import org.apache.cxf.ws.policy.PolicyAssertion;
+import org.apache.cxf.ws.policy.PolicyBuilder;
+import org.apache.cxf.ws.security.policy.SP11Constants;
+import org.apache.cxf.ws.security.policy.SP12Constants;
+import org.apache.cxf.ws.security.policy.SPConstants;
+import org.apache.cxf.ws.security.policy.model.AlgorithmSuite;
+import org.apache.cxf.ws.security.policy.model.Layout;
+import org.apache.cxf.ws.security.policy.model.SupportingToken;
+import org.apache.cxf.ws.security.policy.model.TransportBinding;
+import org.apache.cxf.ws.security.policy.model.TransportToken;
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.SP11Constants;
-import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.model.AlgorithmSuite;
-import org.apache.ws.secpolicy.model.Layout;
-import org.apache.ws.secpolicy.model.SupportingToken;
-import org.apache.ws.secpolicy.model.TransportBinding;
-import org.apache.ws.secpolicy.model.TransportToken;
public class TransportBindingBuilder implements AssertionBuilder {
-
- public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
- TransportBinding transportBinding = new TransportBinding(SPConstants.SP_V11);
-
- Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
- policy = (Policy) policy.normalize(false);
+ private static final List<QName> KNOWN_ELEMENTS
+ = Arrays.asList(SP11Constants.TRANSPORT_BINDING, SP12Constants.TRANSPORT_BINDING);
+
+
+ PolicyBuilder builder;
+ public TransportBindingBuilder(PolicyBuilder b) {
+ builder = b;
+ }
+
+ public PolicyAssertion build(Element element)
+ throws IllegalArgumentException {
+ SPConstants consts = SP11Constants.SP_NS.equals(element.getNamespaceURI())
+ ? SP11Constants.INSTANCE : SP12Constants.INSTANCE;
+
+ TransportBinding transportBinding = new TransportBinding(consts);
+
+ Policy policy = builder.getPolicy(DOMUtils.getFirstElement(element));
+ policy = (Policy)policy.normalize(false);
+
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), transportBinding, factory);
-
+ processAlternative((List)iterator.next(), transportBinding, consts);
+
/*
* since there should be only one alternative
*/
- break;
+ break;
}
-
+
return transportBinding;
}
-
- public QName[] getKnownElements() {
- return new QName[] {SP11Constants.TRANSPORT_BINDING};
+
+ public List<QName> getKnownElements() {
+ return KNOWN_ELEMENTS;
}
- private void processAlternative(List assertionList, TransportBinding parent, AssertionBuilderFactory factory) {
-
- for (Iterator iterator = assertionList.iterator(); iterator.hasNext(); ) {
-
- Assertion primitive = (Assertion) iterator.next();
+ private void processAlternative(List assertionList,
+ TransportBinding parent,
+ SPConstants consts) {
+
+ for (Iterator iterator = assertionList.iterator(); iterator.hasNext();) {
+
+ Assertion primitive = (Assertion)iterator.next();
QName name = primitive.getName();
+
+ if (!consts.getNamespace().equals(name.getNamespaceURI())) {
+ continue;
+ }
- if (name.equals(SP11Constants.ALGORITHM_SUITE)) {
- parent.setAlgorithmSuite((AlgorithmSuite) primitive);
-
- } else if (name.equals(SP11Constants.TRANSPORT_TOKEN)) {
- parent.setTransportToken(((TransportToken) primitive));
-
- } else if (name.equals(SP11Constants.INCLUDE_TIMESTAMP)) {
+ if (name.getLocalPart().equals(SPConstants.ALGO_SUITE)) {
+ parent.setAlgorithmSuite((AlgorithmSuite)primitive);
+ } else if (name.getLocalPart().equals(SPConstants.TRANSPORT_TOKEN)) {
+ parent.setTransportToken((TransportToken)primitive);
+ } else if (name.getLocalPart().equals(SPConstants.INCLUDE_TIMESTAMP)) {
parent.setIncludeTimestamp(true);
-
- } else if (name.equals(SP11Constants.LAYOUT)) {
- parent.setLayout((Layout) primitive);
-
- } else if (name.equals(SP11Constants.SIGNED_SUPPORTING_TOKENS)) {
- parent.setSignedSupportingToken((SupportingToken) primitive);
-
- } else if (name.equals(SP11Constants.SIGNED_ENDORSING_SUPPORTING_TOKENS)) {
- parent.setSignedEndorsingSupportingTokens((SupportingToken) primitive);
+ } else if (name.getLocalPart().equals(SPConstants.LAYOUT)) {
+ parent.setLayout((Layout)primitive);
+ } else if (name.getLocalPart().equals(SPConstants.SIGNED_SUPPORTING_TOKENS)) {
+ parent.setSignedSupportingToken((SupportingToken)primitive);
+ } else if (name.getLocalPart().equals(SPConstants.SIGNED_ENDORSING_SUPPORTING_TOKENS)) {
+ parent.setSignedEndorsingSupportingTokens((SupportingToken)primitive);
}
}
}
+
+ public PolicyAssertion buildCompatible(PolicyAssertion a, PolicyAssertion b) {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/TransportTokenBuilder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/TransportTokenBuilder.java?rev=675332&r1=674910&r2=675332&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/TransportTokenBuilder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/TransportTokenBuilder.java Wed Jul 9 13:11:45 2008
@@ -1,74 +1,119 @@
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
-package org.apache.ws.secpolicy11.builders;
+package org.apache.cxf.ws.security.policy.builders;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMAttribute;
-import org.apache.axiom.om.OMElement;
-import org.apache.neethi.Assertion;
-import org.apache.neethi.AssertionBuilderFactory;
+import org.w3c.dom.Element;
+
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.ws.policy.AssertionBuilder;
+import org.apache.cxf.ws.policy.PolicyAssertion;
+import org.apache.cxf.ws.policy.PolicyBuilder;
+import org.apache.cxf.ws.policy.builder.xml.XmlPrimitiveAssertion;
+import org.apache.cxf.ws.security.policy.SP11Constants;
+import org.apache.cxf.ws.security.policy.SP12Constants;
+import org.apache.cxf.ws.security.policy.SPConstants;
+import org.apache.cxf.ws.security.policy.model.HttpsToken;
+import org.apache.cxf.ws.security.policy.model.TransportToken;
import org.apache.neethi.Policy;
-import org.apache.neethi.PolicyEngine;
-import org.apache.neethi.builders.AssertionBuilder;
-import org.apache.neethi.builders.xml.XmlPrimtiveAssertion;
-import org.apache.ws.secpolicy.SP11Constants;
-import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.model.HttpsToken;
-import org.apache.ws.secpolicy.model.TransportToken;
+
public class TransportTokenBuilder implements AssertionBuilder {
+ private static final List<QName> KNOWN_ELEMENTS
+ = Arrays.asList(SP11Constants.TRANSPORT_TOKEN, SP12Constants.TRANSPORT_TOKEN);
+
-
- public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
- TransportToken transportToken = new TransportToken(SPConstants.SP_V11);
+ PolicyBuilder builder;
+ public TransportTokenBuilder(PolicyBuilder b) {
+ builder = b;
+ }
+
+ public PolicyAssertion build(Element element)
+ throws IllegalArgumentException {
- Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
- policy = (Policy) policy.normalize(false);
+ SPConstants consts = SP11Constants.SP_NS.equals(element.getNamespaceURI())
+ ? SP11Constants.INSTANCE : SP12Constants.INSTANCE;
+
+ TransportToken transportToken = new TransportToken(consts);
+
+ Policy policy = builder.getPolicy(DOMUtils.getFirstElement(element));
+ policy = (Policy)policy.normalize(false);
+
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), transportToken);
+ processAlternative((List)iterator.next(), transportToken);
break; // since there should be only one alternative
}
-
+
return transportToken;
}
-
- public QName[] getKnownElements() {
- return new QName[] {SP11Constants.TRANSPORT_TOKEN};
+
+ public List<QName> getKnownElements() {
+ return KNOWN_ELEMENTS;
}
-
+
private void processAlternative(List assertions, TransportToken parent) {
-
+
for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- XmlPrimtiveAssertion primtive = (XmlPrimtiveAssertion) iterator.next();
+ XmlPrimitiveAssertion primtive = (XmlPrimitiveAssertion)iterator.next();
QName qname = primtive.getName();
-
+
if (SP11Constants.HTTPS_TOKEN.equals(qname)) {
- HttpsToken httpsToken = new HttpsToken(SPConstants.SP_V11);
- OMAttribute attr = primtive.getValue().getAttribute(SPConstants.REQUIRE_CLIENT_CERTIFICATE);
- if(attr != null) {
- httpsToken.setRequireClientCertificate("true".equals(attr.getAttributeValue()));
+ HttpsToken httpsToken = new HttpsToken(SP11Constants.INSTANCE);
+ String attr = DOMUtils.getAttribute(primtive.getValue(),
+ SPConstants.REQUIRE_CLIENT_CERTIFICATE);
+ if (attr != null) {
+ httpsToken.setRequireClientCertificate("true".equals(attr));
}
parent.setToken(httpsToken);
+ } else if (SP12Constants.HTTPS_TOKEN.equals(qname)) {
+ HttpsToken httpsToken = new HttpsToken(SP12Constants.INSTANCE);
+
+ Element element = DOMUtils.getFirstChildWithName(primtive.getValue(), SPConstants.POLICY);
+
+ if (element != null) {
+ Element child = DOMUtils.getFirstElement(element);
+ if (child != null) {
+ if (SP12Constants.HTTP_BASIC_AUTHENTICATION.equals(DOMUtils.getElementQName(child))) {
+ httpsToken.setHttpBasicAuthentication(true);
+ } else if (SP12Constants.HTTP_DIGEST_AUTHENTICATION
+ .equals(DOMUtils.getElementQName(child))) {
+ httpsToken.setHttpDigestAuthentication(true);
+ } else if (SP12Constants.REQUIRE_CLIENT_CERTIFICATE
+ .equals(DOMUtils.getElementQName(child))) {
+ httpsToken.setRequireClientCertificate(true);
+ }
+ }
+ }
}
}
}
+
+
+ public PolicyAssertion buildCompatible(PolicyAssertion a, PolicyAssertion b) {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/Trust10Builder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/Trust10Builder.java?rev=675332&r1=674910&r2=675332&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/Trust10Builder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/Trust10Builder.java Wed Jul 9 13:11:45 2008
@@ -1,71 +1,85 @@
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
-package org.apache.ws.secpolicy11.builders;
+package org.apache.cxf.ws.security.policy.builders;
+
+import java.util.Collections;
+import java.util.List;
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMElement;
-import org.apache.neethi.Assertion;
-import org.apache.neethi.AssertionBuilderFactory;
-import org.apache.neethi.builders.AssertionBuilder;
-import org.apache.ws.secpolicy.SP11Constants;
-import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.model.Trust10;
+import org.w3c.dom.Element;
+
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.ws.policy.AssertionBuilder;
+import org.apache.cxf.ws.policy.PolicyAssertion;
+import org.apache.cxf.ws.security.policy.SP11Constants;
+import org.apache.cxf.ws.security.policy.SPConstants;
+import org.apache.cxf.ws.security.policy.model.Trust10;
+
public class Trust10Builder implements AssertionBuilder {
+ public Trust10Builder() {
+ }
+
- public Assertion build(OMElement element, AssertionBuilderFactory factory)
- throws IllegalArgumentException {
+ public PolicyAssertion build(Element element)
+ throws IllegalArgumentException {
- element = element.getFirstChildWithName(SPConstants.POLICY);
+ element = DOMUtils.getFirstChildWithName(element, SPConstants.POLICY);
if (element == null) {
- throw new IllegalArgumentException(
- "Trust10 assertion doesn't contain any Policy");
+ throw new IllegalArgumentException("Trust10 assertion doesn't contain any Policy");
}
+
+ Trust10 trust10 = new Trust10(SP11Constants.INSTANCE);
- Trust10 trust10 = new Trust10(SPConstants.SP_V11);
-
- if (element
- .getFirstChildWithName(SP11Constants.MUST_SUPPORT_CLIENT_CHALLENGE) != null) {
+ if (DOMUtils.getFirstChildWithName(element, SP11Constants.MUST_SUPPORT_CLIENT_CHALLENGE) != null) {
trust10.setMustSupportClientChallenge(true);
}
- if (element
- .getFirstChildWithName(SP11Constants.MUST_SUPPORT_SERVER_CHALLENGE) != null) {
+ if (DOMUtils.getFirstChildWithName(element, SP11Constants.MUST_SUPPORT_SERVER_CHALLENGE) != null) {
trust10.setMustSupportServerChallenge(true);
}
- if (element.getFirstChildWithName(SP11Constants.REQUIRE_CLIENT_ENTROPY) != null) {
+ if (DOMUtils.getFirstChildWithName(element, SP11Constants.REQUIRE_CLIENT_ENTROPY) != null) {
trust10.setRequireClientEntropy(true);
}
- if (element.getFirstChildWithName(SP11Constants.REQUIRE_SERVER_ENTROPY) != null) {
+ if (DOMUtils.getFirstChildWithName(element, SP11Constants.REQUIRE_SERVER_ENTROPY) != null) {
trust10.setRequireServerEntropy(true);
}
- if (element.getFirstChildWithName(SP11Constants.MUST_SUPPORT_ISSUED_TOKENS) != null) {
+ if (DOMUtils.getFirstChildWithName(element, SP11Constants.MUST_SUPPORT_ISSUED_TOKENS) != null) {
trust10.setMustSupportIssuedTokens(true);
}
return trust10;
}
- public QName[] getKnownElements() {
- return new QName[] {SP11Constants.TRUST_10};
+ public List<QName> getKnownElements() {
+ return Collections.singletonList(SP11Constants.TRUST_10);
+ }
+
+
+ public PolicyAssertion buildCompatible(PolicyAssertion a, PolicyAssertion b) {
+ // TODO Auto-generated method stub
+ return null;
}
}
Copied: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/Trust13Builder.java (from r674910, webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/Trust13Builder.java)
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/Trust13Builder.java?p2=cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/Trust13Builder.java&p1=webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/Trust13Builder.java&r1=674910&r2=675332&rev=675332&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/Trust13Builder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/Trust13Builder.java Wed Jul 9 13:11:45 2008
@@ -1,79 +1,90 @@
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
-package org.apache.ws.secpolicy12.builders;
+package org.apache.cxf.ws.security.policy.builders;
+
+import java.util.Collections;
+import java.util.List;
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMElement;
-import org.apache.neethi.Assertion;
-import org.apache.neethi.AssertionBuilderFactory;
-import org.apache.neethi.builders.AssertionBuilder;
-import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.SP12Constants;
-import org.apache.ws.secpolicy.model.Trust13;
+import org.w3c.dom.Element;
+
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.ws.policy.AssertionBuilder;
+import org.apache.cxf.ws.policy.PolicyAssertion;
+import org.apache.cxf.ws.security.policy.SP12Constants;
+import org.apache.cxf.ws.security.policy.SPConstants;
+import org.apache.cxf.ws.security.policy.model.Trust13;
+
public class Trust13Builder implements AssertionBuilder {
- public Assertion build(OMElement element, AssertionBuilderFactory factory)
- throws IllegalArgumentException {
+ public PolicyAssertion build(Element element) {
- element = element.getFirstChildWithName(SPConstants.POLICY);
+ element = DOMUtils.getFirstChildWithName(element, SPConstants.POLICY);
if (element == null) {
throw new IllegalArgumentException(
"Trust10 assertion doesn't contain any Policy");
}
- Trust13 trust13 = new Trust13(SPConstants.SP_V12);
+ Trust13 trust13 = new Trust13(SP12Constants.INSTANCE);
- if (element
- .getFirstChildWithName(SP12Constants.MUST_SUPPORT_CLIENT_CHALLENGE) != null) {
+ if (DOMUtils
+ .getFirstChildWithName(element, SP12Constants.MUST_SUPPORT_CLIENT_CHALLENGE) != null) {
trust13.setMustSupportClientChallenge(true);
}
- if (element
- .getFirstChildWithName(SP12Constants.MUST_SUPPORT_SERVER_CHALLENGE) != null) {
+ if (DOMUtils
+ .getFirstChildWithName(element, SP12Constants.MUST_SUPPORT_SERVER_CHALLENGE) != null) {
trust13.setMustSupportServerChallenge(true);
}
- if (element.getFirstChildWithName(SP12Constants.REQUIRE_CLIENT_ENTROPY) != null) {
+ if (DOMUtils.getFirstChildWithName(element, SP12Constants.REQUIRE_CLIENT_ENTROPY) != null) {
trust13.setRequireClientEntropy(true);
}
- if (element.getFirstChildWithName(SP12Constants.REQUIRE_SERVER_ENTROPY) != null) {
+ if (DOMUtils.getFirstChildWithName(element, SP12Constants.REQUIRE_SERVER_ENTROPY) != null) {
trust13.setRequireServerEntropy(true);
}
- if (element.getFirstChildWithName(SP12Constants.MUST_SUPPORT_ISSUED_TOKENS) != null) {
+ if (DOMUtils.getFirstChildWithName(element, SP12Constants.MUST_SUPPORT_ISSUED_TOKENS) != null) {
trust13.setMustSupportIssuedTokens(true);
}
- if (element.getFirstChildWithName(SP12Constants.REQUIRE_REQUEST_SECURITY_TOKEN_COLLECTION) != null) {
+ if (DOMUtils.getFirstChildWithName(element,
+ SP12Constants.REQUIRE_REQUEST_SECURITY_TOKEN_COLLECTION) != null) {
trust13.setRequireRequestSecurityTokenCollection(true);
}
- if (element.getFirstChildWithName(SP12Constants.REQUIRE_APPLIES_TO) != null) {
+ if (DOMUtils.getFirstChildWithName(element, SP12Constants.REQUIRE_APPLIES_TO) != null) {
trust13.setRequireAppliesTo(true);
}
return trust13;
}
-
- public QName[] getKnownElements() {
- return new QName[] {SP12Constants.TRUST_13};
+ public List<QName> getKnownElements() {
+ return Collections.singletonList(SP12Constants.TRUST_13);
+ }
+ public PolicyAssertion buildCompatible(PolicyAssertion a, PolicyAssertion b) {
+ // TODO Auto-generated method stub
+ return null;
}
}
Propchange: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/Trust13Builder.java
------------------------------------------------------------------------------
svn:executable = *
Propchange: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/Trust13Builder.java
------------------------------------------------------------------------------
svn:mergeinfo =
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/UsernameTokenBuilder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/UsernameTokenBuilder.java?rev=675332&r1=674910&r2=675332&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/UsernameTokenBuilder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/UsernameTokenBuilder.java Wed Jul 9 13:11:45 2008
@@ -1,85 +1,118 @@
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
-package org.apache.ws.secpolicy11.builders;
+package org.apache.cxf.ws.security.policy.builders;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMAttribute;
-import org.apache.axiom.om.OMElement;
+import org.w3c.dom.Element;
+
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.ws.policy.AssertionBuilder;
+import org.apache.cxf.ws.policy.PolicyAssertion;
+import org.apache.cxf.ws.policy.PolicyBuilder;
+import org.apache.cxf.ws.security.policy.SP11Constants;
+import org.apache.cxf.ws.security.policy.SP12Constants;
+import org.apache.cxf.ws.security.policy.SPConstants;
+import org.apache.cxf.ws.security.policy.model.UsernameToken;
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.SP11Constants;
-import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.model.UsernameToken;
+
public class UsernameTokenBuilder implements AssertionBuilder {
+ private static final List<QName> KNOWN_ELEMENTS
+ = Arrays.asList(SP11Constants.USERNAME_TOKEN, SP12Constants.USERNAME_TOKEN);
+ PolicyBuilder builder;
+ public UsernameTokenBuilder(PolicyBuilder b) {
+ builder = b;
+ }
- public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
- UsernameToken usernameToken = new UsernameToken(SPConstants.SP_V11);
-
- OMAttribute attribute = element.getAttribute(SP11Constants.INCLUDE_TOKEN);
+ public PolicyAssertion build(Element element) {
- if(attribute != null) {
- int inclusion = SP11Constants.getInclusionFromAttributeValue(attribute.getAttributeValue());
- usernameToken.setInclusion(inclusion);
+ SPConstants consts = SP11Constants.SP_NS.equals(element.getNamespaceURI())
+ ? SP11Constants.INSTANCE : SP12Constants.INSTANCE;
+
+ UsernameToken usernameToken = new UsernameToken(consts);
+
+ String attribute = DOMUtils.getAttribute(element, SP11Constants.INCLUDE_TOKEN);
+ if (attribute != null) {
+ usernameToken.setInclusion(consts.getInclusionFromAttributeValue(attribute));
}
-
- OMElement policyElement = element.getFirstElement();
-
- if (policyElement != null && !policyElement.getQName().equals(org.apache.neethi.Constants.Q_ELEM_POLICY)) {
-
- Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
- policy = (Policy) policy.normalize(false);
-
+
+ Element policyElement = DOMUtils.getFirstElement(element);
+
+ if (policyElement != null) {
+
+ Policy policy = builder.getPolicy(policyElement);
+ policy = (Policy)policy.normalize(false);
+
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), usernameToken);
-
+ processAlternative((List)iterator.next(), usernameToken, consts);
+
/*
* since there should be only one alternative
*/
break;
- }
+ }
}
-
+
return usernameToken;
}
-
- public QName[] getKnownElements() {
- return new QName[] {SP11Constants.USERNAME_TOKEN};
+
+ public List<QName> getKnownElements() {
+ return KNOWN_ELEMENTS;
}
- private void processAlternative(List assertions, UsernameToken parent) {
-
+ private void processAlternative(List assertions, UsernameToken parent, SPConstants consts) {
+
for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- Assertion assertion = (Assertion) iterator.next();
+ Assertion assertion = (Assertion)iterator.next();
QName qname = assertion.getName();
+
+ if (!consts.getNamespace().equals(qname.getNamespaceURI())) {
+ continue;
+ }
- if (SP11Constants.WSS_USERNAME_TOKEN10.equals(qname)) {
+ if (SPConstants.USERNAME_TOKEN10.equals(qname.getLocalPart())) {
parent.setUseUTProfile10(true);
-
- } else if (SP11Constants.WSS_USERNAME_TOKEN11.equals(qname)) {
+ } else if (SPConstants.USERNAME_TOKEN11.equals(qname.getLocalPart())) {
parent.setUseUTProfile11(true);
+ } else if (SP12Constants.NO_PASSWORD.equals(qname)) {
+ parent.setNoPassword(true);
+ } else if (SP12Constants.HASH_PASSWORD.equals(qname)) {
+ parent.setHashPassword(true);
+ } else if (SP12Constants.REQUIRE_DERIVED_KEYS.equals(qname)) {
+ parent.setDerivedKeys(true);
+ } else if (SP12Constants.REQUIRE_EXPLICIT_DERIVED_KEYS.equals(qname)) {
+ parent.setExplicitDerivedKeys(true);
+ } else if (SP12Constants.REQUIRE_IMPLIED_DERIVED_KEYS.equals(qname)) {
+ parent.setImpliedDerivedKeys(true);
}
}
}
+
+ public PolicyAssertion buildCompatible(PolicyAssertion a, PolicyAssertion b) {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/WSS10Builder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/WSS10Builder.java?rev=675332&r1=674910&r2=675332&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/WSS10Builder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/WSS10Builder.java Wed Jul 9 13:11:45 2008
@@ -1,81 +1,106 @@
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
-package org.apache.ws.secpolicy11.builders;
+package org.apache.cxf.ws.security.policy.builders;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMElement;
+import org.w3c.dom.Element;
+
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.ws.policy.AssertionBuilder;
+import org.apache.cxf.ws.policy.PolicyAssertion;
+import org.apache.cxf.ws.policy.PolicyBuilder;
+import org.apache.cxf.ws.security.policy.SP11Constants;
+import org.apache.cxf.ws.security.policy.SP12Constants;
+import org.apache.cxf.ws.security.policy.SPConstants;
+import org.apache.cxf.ws.security.policy.model.Wss10;
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.SP11Constants;
-import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.model.Wss10;
+
public class WSS10Builder implements AssertionBuilder {
+ private static final List<QName> KNOWN_ELEMENTS
+ = Arrays.asList(SP11Constants.WSS10, SP12Constants.WSS10);
+
+ PolicyBuilder builder;
+ public WSS10Builder(PolicyBuilder b) {
+ builder = b;
+ }
+ public List<QName> getKnownElements() {
+ return KNOWN_ELEMENTS;
+ }
+
+ public PolicyAssertion build(Element element)
+ throws IllegalArgumentException {
- public Assertion build(OMElement element, AssertionBuilderFactory factory)
- throws IllegalArgumentException {
-
- Wss10 wss10 = new Wss10(SPConstants.SP_V11);
-
- Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
- policy = (Policy) policy.normalize(false);
+ SPConstants consts = SP11Constants.SP_NS.equals(element.getNamespaceURI())
+ ? SP11Constants.INSTANCE : SP12Constants.INSTANCE;
+ Wss10 wss10 = new Wss10(consts);
+
+ Policy policy = builder.getPolicy(DOMUtils.getFirstElement(element));
+ policy = (Policy)policy.normalize(false);
+
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), wss10);
+ processAlternative((List)iterator.next(), wss10, consts);
/*
* since there should be only one alternative
*/
break;
}
-
+
return wss10;
}
- public QName[] getKnownElements() {
- return new QName[] {SP11Constants.WSS10};
- }
-
- private void processAlternative(List assertions, Wss10 parent) {
-
+ private void processAlternative(List assertions, Wss10 parent, SPConstants consts) {
+
Assertion assertion;
QName name;
-
- for (Iterator iterator = assertions.iterator(); iterator.hasNext(); ) {
- assertion = (Assertion) iterator.next();
+
+ for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = (Assertion)iterator.next();
name = assertion.getName();
-
- if (SP11Constants.MUST_SUPPORT_REF_KEY_IDENTIFIER.equals(name)) {
+
+ if (!consts.getNamespace().equals(name.getNamespaceURI())) {
+ continue;
+ }
+ if (SPConstants.MUST_SUPPORT_REF_KEY_IDENTIFIER.equals(name.getLocalPart())) {
parent.setMustSupportRefKeyIdentifier(true);
-
- } else if (SP11Constants.MUST_SUPPORT_REF_ISSUER_SERIAL.equals(name)) {
+
+ } else if (SPConstants.MUST_SUPPORT_REF_ISSUER_SERIAL.equals(name.getLocalPart())) {
parent.setMustSupportRefIssuerSerial(true);
-
- } else if (SP11Constants.MUST_SUPPORT_REF_EXTERNAL_URI.equals(name)) {
+
+ } else if (SPConstants.MUST_SUPPORT_REF_EXTERNAL_URI.equals(name.getLocalPart())) {
parent.setMustSupportRefExternalURI(true);
-
- } else if (SP11Constants.MUST_SUPPORT_REF_EMBEDDED_TOKEN.equals(name)) {
+
+ } else if (SPConstants.MUST_SUPPORT_REF_EMBEDDED_TOKEN.equals(name.getLocalPart())) {
parent.setMustSupportRefEmbeddedToken(true);
}
}
}
+
+ public PolicyAssertion buildCompatible(PolicyAssertion a, PolicyAssertion b) {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/WSS11Builder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/WSS11Builder.java?rev=675332&r1=674910&r2=675332&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/WSS11Builder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/builders/WSS11Builder.java Wed Jul 9 13:11:45 2008
@@ -1,46 +1,65 @@
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
*/
-package org.apache.ws.secpolicy11.builders;
+package org.apache.cxf.ws.security.policy.builders;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMElement;
+import org.w3c.dom.Element;
+
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.ws.policy.AssertionBuilder;
+import org.apache.cxf.ws.policy.PolicyAssertion;
+import org.apache.cxf.ws.policy.PolicyBuilder;
+import org.apache.cxf.ws.security.policy.SP11Constants;
+import org.apache.cxf.ws.security.policy.SP12Constants;
+import org.apache.cxf.ws.security.policy.SPConstants;
+import org.apache.cxf.ws.security.policy.model.Wss11;
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.SP11Constants;
-import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.model.Wss11;
+
public class WSS11Builder implements AssertionBuilder {
+ private static final List<QName> KNOWN_ELEMENTS
+ = Arrays.asList(SP11Constants.WSS11, SP12Constants.WSS11);
+
+ PolicyBuilder builder;
+ public WSS11Builder(PolicyBuilder b) {
+ builder = b;
+ }
- public Assertion build(OMElement element, AssertionBuilderFactory factory)
- throws IllegalArgumentException {
- Wss11 wss11 = new Wss11(SPConstants.SP_V11);
+
+
+ public PolicyAssertion build(Element element)
+ throws IllegalArgumentException {
+ SPConstants consts = SP11Constants.SP_NS.equals(element.getNamespaceURI())
+ ? SP11Constants.INSTANCE : SP12Constants.INSTANCE;
+ Wss11 wss11 = new Wss11(consts);
- Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
- policy = (Policy) policy.normalize(false);
+ Policy policy = builder.getPolicy(DOMUtils.getFirstElement(element));
+ policy = (Policy)policy.normalize(false);
for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), wss11);
+ processAlternative((List)iterator.next(), wss11, consts);
/*
* since there should be only one alternative
*/
@@ -50,40 +69,49 @@
return wss11;
}
- public QName[] getKnownElements() {
- return new QName[] {SP11Constants.WSS11};
+ public List<QName> getKnownElements() {
+ return KNOWN_ELEMENTS;
}
- private void processAlternative(List assertions, Wss11 parent) {
-
+ private void processAlternative(List assertions, Wss11 parent, SPConstants consts) {
+
Assertion assertion;
QName name;
for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
+ assertion = (Assertion)iterator.next();
name = assertion.getName();
- if (SP11Constants.MUST_SUPPORT_REF_KEY_IDENTIFIER.equals(name)) {
+ if (!consts.getNamespace().equals(name.getNamespaceURI())) {
+ continue;
+ }
+
+ if (SPConstants.MUST_SUPPORT_REF_KEY_IDENTIFIER.equals(name.getLocalPart())) {
parent.setMustSupportRefKeyIdentifier(true);
- } else if (SP11Constants.MUST_SUPPORT_REF_ISSUER_SERIAL.equals(name)) {
+ } else if (SPConstants.MUST_SUPPORT_REF_ISSUER_SERIAL.equals(name.getLocalPart())) {
parent.setMustSupportRefIssuerSerial(true);
- } else if (SP11Constants.MUST_SUPPORT_REF_EXTERNAL_URI.equals(name)) {
+ } else if (SPConstants.MUST_SUPPORT_REF_EXTERNAL_URI.equals(name.getLocalPart())) {
parent.setMustSupportRefExternalURI(true);
- } else if (SP11Constants.MUST_SUPPORT_REF_EMBEDDED_TOKEN.equals(name)) {
+ } else if (SPConstants.MUST_SUPPORT_REF_EMBEDDED_TOKEN.equals(name.getLocalPart())) {
parent.setMustSupportRefEmbeddedToken(true);
-
- } else if (SP11Constants.MUST_SUPPORT_REF_THUMBPRINT.equals(name)) {
+
+ } else if (SPConstants.MUST_SUPPORT_REF_THUMBPRINT.equals(name.getLocalPart())) {
parent.setMustSupportRefThumbprint(true);
-
- } else if (SP11Constants.MUST_SUPPORT_REF_ENCRYPTED_KEY.equals(name)) {
+
+ } else if (SPConstants.MUST_SUPPORT_REF_ENCRYPTED_KEY.equals(name.getLocalPart())) {
parent.setMustSupportRefEncryptedKey(true);
-
- } else if (SP11Constants.REQUIRE_SIGNATURE_CONFIRMATION.equals(name)) {
+
+ } else if (SPConstants.REQUIRE_SIGNATURE_CONFIRMATION.equals(name.getLocalPart())) {
parent.setRequireSignatureConfirmation(true);
}
}
}
+
+ public PolicyAssertion buildCompatible(PolicyAssertion a, PolicyAssertion b) {
+ // TODO Auto-generated method stub
+ return null;
+ }
}