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/01/29 15:34:25 UTC
svn commit: r616344 - in
/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model:
ContentEncryptedElements.java RequiredElements.java RequiredParts.java
SignedEncryptedParts.java Token.java UsernameToken.java
Author: nandana
Date: Tue Jan 29 06:34:22 2008
New Revision: 616344
URL: http://svn.apache.org/viewvc?rev=616344&view=rev
Log:
rampart-policy related changes to support WS Security Policy 1.2
Added:
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/ContentEncryptedElements.java
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredElements.java
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredParts.java
Modified:
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Token.java
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/UsernameToken.java
Added: webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/ContentEncryptedElements.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/ContentEncryptedElements.java?rev=616344&view=auto
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/ContentEncryptedElements.java (added)
+++ webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/ContentEncryptedElements.java Tue Jan 29 06:34:22 2008
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2004,2005 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.
+ */
+
+package org.apache.ws.secpolicy.model;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.HashMap;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.neethi.PolicyComponent;
+import org.apache.ws.secpolicy.SP11Constants;
+import org.apache.ws.secpolicy.SP12Constants;
+import org.apache.ws.secpolicy.SPConstants;
+
+public class ContentEncryptedElements extends AbstractSecurityAssertion {
+
+ private ArrayList xPathExpressions = new ArrayList();
+
+ private HashMap declaredNamespaces = new HashMap();
+
+ private String xPathVersion;
+
+ public ContentEncryptedElements(int version) {
+ setVersion(version);
+ }
+
+ /**
+ * @return Returns the xPathExpressions.
+ */
+ public ArrayList getXPathExpressions() {
+ return xPathExpressions;
+ }
+
+ public void addXPathExpression(String expr) {
+ this.xPathExpressions.add(expr);
+ }
+
+ /**
+ * @return Returns the xPathVersion.
+ */
+ public String getXPathVersion() {
+ return xPathVersion;
+ }
+
+ /**
+ * @param pathVersion
+ * The xPathVersion to set.
+ */
+ public void setXPathVersion(String pathVersion) {
+ xPathVersion = pathVersion;
+ }
+
+ public HashMap getDeclaredNamespaces () {
+ return declaredNamespaces;
+ }
+
+ public void addDeclaredNamespaces(String uri, String prefix ) {
+ declaredNamespaces.put(prefix, uri);
+ }
+
+ public void serialize(XMLStreamWriter writer) throws XMLStreamException {
+
+ String localName = getName().getLocalPart();
+ String namespaceURI = getName().getNamespaceURI();
+
+ String prefix;
+ String writerPrefix = writer.getPrefix(namespaceURI);
+
+ if (writerPrefix == null) {
+ prefix = getName().getPrefix();
+ writer.setPrefix(prefix, namespaceURI);
+ } else {
+ prefix = writerPrefix;
+ }
+
+ // <sp:ContentEncryptedElements>
+ writer.writeStartElement(prefix, localName, namespaceURI);
+
+ // xmlns:sp=".."
+ writer.writeNamespace(prefix, namespaceURI);
+
+ if (writerPrefix == null) {
+ // xmlns:sp=".."
+ writer.writeNamespace(prefix, namespaceURI);
+ }
+
+ if (xPathVersion != null) {
+ writer.writeAttribute(prefix, namespaceURI, SPConstants.XPATH_VERSION, xPathVersion);
+ }
+
+ String xpathExpression;
+
+ for (Iterator iterator = xPathExpressions.iterator(); iterator
+ .hasNext();) {
+ xpathExpression = (String) iterator.next();
+ // <sp:XPath ..>
+ writer.writeStartElement(prefix, SPConstants.XPATH_EXPR, namespaceURI);
+ writer.writeCharacters(xpathExpression);
+ writer.writeEndElement();
+ }
+
+ //</sp:ContentEncryptedElements>
+ writer.writeEndElement();
+ }
+
+ public QName getName() {
+ return SP12Constants.CONTENT_ENCRYPTED_ELEMENTS;
+ }
+
+ public PolicyComponent normalize() {
+ return this;
+ }
+}
Added: webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredElements.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredElements.java?rev=616344&view=auto
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredElements.java (added)
+++ webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredElements.java Tue Jan 29 06:34:22 2008
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2004,2005 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.
+ */
+
+package org.apache.ws.secpolicy.model;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.HashMap;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.neethi.PolicyComponent;
+import org.apache.ws.secpolicy.SP11Constants;
+import org.apache.ws.secpolicy.SP12Constants;
+import org.apache.ws.secpolicy.SPConstants;
+
+public class RequiredElements extends AbstractSecurityAssertion {
+
+ private ArrayList xPathExpressions = new ArrayList();
+
+ private HashMap declaredNamespaces = new HashMap();
+
+ private String xPathVersion;
+
+ public RequiredElements(int version) {
+ setVersion(version);
+ }
+
+ /**
+ * @return Returns the xPathExpressions.
+ */
+ public ArrayList getXPathExpressions() {
+ return xPathExpressions;
+ }
+
+ public void addXPathExpression(String expr) {
+ this.xPathExpressions.add(expr);
+ }
+
+ /**
+ * @return Returns the xPathVersion.
+ */
+ public String getXPathVersion() {
+ return xPathVersion;
+ }
+
+ /**
+ * @param pathVersion
+ * The xPathVersion to set.
+ */
+ public void setXPathVersion(String pathVersion) {
+ xPathVersion = pathVersion;
+ }
+
+ public HashMap getDeclaredNamespaces () {
+ return declaredNamespaces;
+ }
+
+ public void addDeclaredNamespaces(String uri, String prefix ) {
+ declaredNamespaces.put(prefix, uri);
+ }
+
+ public void serialize(XMLStreamWriter writer) throws XMLStreamException {
+
+ String localName = getName().getLocalPart();
+ String namespaceURI = getName().getNamespaceURI();
+
+ String prefix;
+ String writerPrefix = writer.getPrefix(namespaceURI);
+
+ if (writerPrefix == null) {
+ prefix = getName().getPrefix();
+ writer.setPrefix(prefix, namespaceURI);
+ } else {
+ prefix = writerPrefix;
+ }
+
+ // <sp:RequiredElements>
+ writer.writeStartElement(prefix, localName, namespaceURI);
+
+ // xmlns:sp=".."
+ writer.writeNamespace(prefix, namespaceURI);
+
+ if (writerPrefix == null) {
+ // xmlns:sp=".."
+ writer.writeNamespace(prefix, namespaceURI);
+ }
+
+ if (xPathVersion != null) {
+ writer.writeAttribute(prefix, namespaceURI, SPConstants.XPATH_VERSION, xPathVersion);
+ }
+
+ String xpathExpression;
+
+ for (Iterator iterator = xPathExpressions.iterator(); iterator
+ .hasNext();) {
+ xpathExpression = (String) iterator.next();
+ // <sp:XPath ..>
+ writer.writeStartElement(prefix, SPConstants.XPATH_EXPR, namespaceURI);
+ writer.writeCharacters(xpathExpression);
+ writer.writeEndElement();
+ }
+
+ //</sp:RequiredElements>
+ writer.writeEndElement();
+ }
+
+ public QName getName() {
+ if (version == SPConstants.SP_V12) {
+ return SP12Constants.REQUIRED_ELEMENTS;
+ } else {
+ return SP11Constants.REQUIRED_ELEMENTS;
+ }
+ }
+
+ public PolicyComponent normalize() {
+ return this;
+ }
+}
Added: webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredParts.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredParts.java?rev=616344&view=auto
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredParts.java (added)
+++ webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredParts.java Tue Jan 29 06:34:22 2008
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2004,2005 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.
+ */
+
+package org.apache.ws.secpolicy.model;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.neethi.PolicyComponent;
+import org.apache.ws.secpolicy.SP11Constants;
+import org.apache.ws.secpolicy.SP12Constants;
+import org.apache.ws.secpolicy.SPConstants;
+
+public class RequiredParts extends AbstractSecurityAssertion {
+
+ private ArrayList headers = new ArrayList();
+
+ public RequiredParts(int version) {
+ setVersion(version);
+ }
+
+ /**
+ * @return Returns the headers.
+ */
+ public ArrayList getHeaders() {
+ return this.headers;
+ }
+
+ /**
+ * @param headers The headers to set.
+ */
+ public void addHeader(Header header) {
+ this.headers.add(header);
+ }
+
+
+ public QName getName() {
+ return SP12Constants.REQUIRED_PARTS;
+ }
+
+ public PolicyComponent normalize() {
+ return this;
+ }
+
+ public void serialize(XMLStreamWriter writer) throws XMLStreamException {
+ String localName = getName().getLocalPart();
+ String namespaceURI = getName().getNamespaceURI();
+
+ String prefix = writer.getPrefix(namespaceURI);
+
+ if (prefix == null) {
+ prefix = getName().getPrefix();
+ writer.setPrefix(prefix, namespaceURI);
+ }
+
+ // <sp:RequiredParts>
+ writer.writeStartElement(prefix, localName, namespaceURI);
+
+ // xmlns:sp=".."
+ writer.writeNamespace(prefix, namespaceURI);
+
+ Header header;
+ for (Iterator iterator = headers.iterator(); iterator.hasNext();) {
+ header = (Header) iterator.next();
+ // <sp:Header Name=".." Namespace=".." />
+ writer.writeStartElement(prefix, SPConstants.HEADER, namespaceURI);
+ // Name attribute is optional
+ if (header.getName() != null) {
+ writer.writeAttribute("Name", header.getName());
+ }
+ writer.writeAttribute("Namespace", header.getNamespace());
+
+ writer.writeEndElement();
+ }
+
+ // </sp:RequiredParts>
+ writer.writeEndElement();
+ }
+
+
+}
Modified: webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java?rev=616344&r1=616343&r2=616344&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java Tue Jan 29 06:34:22 2008
@@ -32,6 +32,8 @@
private boolean body;
+ private boolean attachments;
+
private ArrayList headers = new ArrayList();
private boolean signedParts;
@@ -54,6 +56,20 @@
public void setBody(boolean body) {
this.body = body;
}
+
+ /**
+ * @return Returns the attachments.
+ */
+ public boolean isAttachments() {
+ return attachments;
+ }
+
+ /**
+ * @param attachments The attachments to set.
+ */
+ public void setAttachments(boolean attachments) {
+ this.attachments = attachments;
+ }
/**
* @return Returns the headers.
@@ -131,6 +147,12 @@
}
writer.writeAttribute("Namespace", header.getNamespace());
+ writer.writeEndElement();
+ }
+
+ if (isAttachments() && version == SPConstants.SP_V12) {
+ // <sp:Attachments />
+ writer.writeStartElement(prefix, SPConstants.ATTACHMENTS, namespaceURI);
writer.writeEndElement();
}
Modified: webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Token.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Token.java?rev=616344&r1=616343&r2=616344&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Token.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Token.java Tue Jan 29 06:34:22 2008
@@ -30,6 +30,10 @@
*/
private boolean derivedKeys;
+ private boolean impliedDerivedKeys;
+
+ private boolean explicitDerivedKeys;
+
/**
* @return Returns the inclusion.
*/
@@ -65,6 +69,23 @@
*/
public void setDerivedKeys(boolean derivedKeys) {
this.derivedKeys = derivedKeys;
- }
+ }
+
+
+ public boolean isExplicitDerivedKeys() {
+ return explicitDerivedKeys;
+ }
+
+ public void setExplicitDerivedKeys(boolean explicitDerivedKeys) {
+ this.explicitDerivedKeys = explicitDerivedKeys;
+ }
+
+ public boolean isImpliedDerivedKeys() {
+ return impliedDerivedKeys;
+ }
+
+ public void setImpliedDerivedKeys(boolean impliedDerivedKeys) {
+ this.impliedDerivedKeys = impliedDerivedKeys;
+ }
}
Modified: webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/UsernameToken.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/UsernameToken.java?rev=616344&r1=616343&r2=616344&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/UsernameToken.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/UsernameToken.java Tue Jan 29 06:34:22 2008
@@ -31,6 +31,10 @@
private boolean useUTProfile11 = false;
+ private boolean noPassword;
+
+ private boolean hashPassword;
+
public UsernameToken(int version){
setVersion(version);
}
@@ -49,6 +53,22 @@
public void setUseUTProfile11(boolean useUTProfile11) {
this.useUTProfile11 = useUTProfile11;
}
+
+ public boolean isNoPassword() {
+ return noPassword;
+ }
+
+ public void setNoPassword(boolean noPassword) {
+ this.noPassword = noPassword;
+ }
+
+ public boolean isHashPassword() {
+ return hashPassword;
+ }
+
+ public void setHashPassword(boolean hashPassword) {
+ this.hashPassword = hashPassword;
+ }
public boolean isUseUTProfile10() {
return useUTProfile10;
@@ -116,6 +136,29 @@
} else {
// <sp:WssUsernameToken11 />
writer.writeStartElement(prefix, SPConstants.USERNAME_TOKEN11 , namespaceURI);
+ }
+
+ if (version == SPConstants.SP_V12) {
+
+ if (isNoPassword()) {
+ writer.writeStartElement(prefix, SPConstants.NO_PASSWORD, namespaceURI);
+ writer.writeEndElement();
+ } else if (isHashPassword()){
+ writer.writeStartElement(prefix, SPConstants.HASH_PASSWORD, namespaceURI);
+ writer.writeEndElement();
+ }
+
+ if (isDerivedKeys()) {
+ writer.writeStartElement(prefix, SPConstants.REQUIRE_DERIVED_KEYS, namespaceURI);
+ writer.writeEndElement();
+ } else if (isExplicitDerivedKeys()) {
+ writer.writeStartElement(prefix, SPConstants.REQUIRE_EXPLICIT_DERIVED_KEYS, namespaceURI);
+ writer.writeEndElement();
+ } else if (isImpliedDerivedKeys()) {
+ writer.writeStartElement(prefix, SPConstants.REQUIRE_IMPLIED_DERIVED_KEYS, namespaceURI);
+ writer.writeEndElement();
+ }
+
}
writer.writeEndElement();