You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by we...@apache.org on 2006/01/11 15:57:57 UTC
svn commit: r368034 [2/2] - in
/webservices/commons/trunk/policy/src/examples/secParser: ./ processors/
Added: webservices/commons/trunk/policy/src/examples/secParser/processors/SignedPartsElementsProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/examples/secParser/processors/SignedPartsElementsProcessor.java?rev=368034&view=auto
==============================================================================
--- webservices/commons/trunk/policy/src/examples/secParser/processors/SignedPartsElementsProcessor.java (added)
+++ webservices/commons/trunk/policy/src/examples/secParser/processors/SignedPartsElementsProcessor.java Wed Jan 11 06:57:47 2006
@@ -0,0 +1,173 @@
+/*
+ * 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 examples.secParser.processors;
+
+import org.apache.ws.policy.PrimitiveAssertion;
+
+import examples.secParser.SecurityPolicy;
+import examples.secParser.SecurityPolicyToken;
+import examples.secParser.SecurityProcessorContext;
+
+/**
+ * @author Werner Dittmann (werner@apache.org)
+ */
+
+public class SignedPartsElementsProcessor {
+
+ private boolean initializedSignedParts = false;
+
+ private boolean initializedSignedElements = false;
+
+ public SignedPartsElementsProcessor() {
+ }
+
+ /**
+ * Intialize the SignedParts complex token.
+ *
+ * This method creates copies of the child tokens that are allowed for
+ * SignedParts. These tokens are Body and Header. These copies are
+ * initialized with handler object and then set as child tokens of
+ * SignedParts. <p/> The handler object must define the methods
+ * <code>doSignedParts, doBody, doHeader</code>.
+ *
+ * @param spt
+ * The token that will hold the child tokens.
+ * @throws NoSuchMethodException
+ */
+ private void initializeSignedParts(SecurityPolicyToken spt)
+ throws NoSuchMethodException {
+ SecurityPolicyToken tmpSpt = SecurityPolicy.body.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.header.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ }
+
+ /**
+ * Intialize the SignedElements complex token.
+ *
+ * This method creates a copy of the child token that is allowed for
+ * SignedElements. The token is XPath. This copy is initialized with a
+ * handler object and then set as child token of SignedElements. <p/> The
+ * handler object must define the method <code>doXPath</code>.
+ *
+ * @param spt
+ * The token that will hold the child tokens.
+ * @throws NoSuchMethodException
+ */
+ private void initializeSignedElements(SecurityPolicyToken spt)
+ throws NoSuchMethodException {
+ SecurityPolicyToken tmpSpt = SecurityPolicy.xPath.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+ }
+
+ public Object doSignedParts(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+
+ SecurityPolicyToken spt = spc.readCurrentSecurityToken();
+
+ switch (spc.getAction()) {
+
+ case SecurityProcessorContext.START:
+ if (!initializedSignedParts) {
+ try {
+ initializeSignedParts(spt);
+ initializedSignedParts = true;
+ } catch (NoSuchMethodException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new Boolean(false);
+ }
+ }
+ System.out.println(spt.getTokenName());
+ PrimitiveAssertion pa = spc.getAssertion();
+ String text = pa.getStrValue();
+ if (text != null) {
+ text = text.trim();
+ System.out.println("Value: '" + text.toString() + "'");
+ }
+ case SecurityProcessorContext.COMMIT:
+ break;
+ case SecurityProcessorContext.ABORT:
+ break;
+ }
+ return new Boolean(true);
+ }
+
+ public Object doSignedElements(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+
+ SecurityPolicyToken spt = spc.readCurrentSecurityToken();
+
+ switch (spc.getAction()) {
+
+ case SecurityProcessorContext.START:
+ if (!initializedSignedElements) {
+ try {
+ initializeSignedElements(spt);
+ initializedSignedElements = true;
+ } catch (NoSuchMethodException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new Boolean(false);
+ }
+ }
+ System.out.println(spt.getTokenName());
+ PrimitiveAssertion pa = spc.getAssertion();
+ String text = pa.getStrValue();
+ if (text != null) {
+ text = text.trim();
+ System.out.println("Value: '" + text.toString() + "'");
+ }
+ case SecurityProcessorContext.COMMIT:
+ break;
+ case SecurityProcessorContext.ABORT:
+ break;
+ }
+ return new Boolean(true);
+ }
+
+ public Object doBody(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doHeader(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doXPath(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+}
Added: webservices/commons/trunk/policy/src/examples/secParser/processors/SignedSupportingTokensProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/examples/secParser/processors/SignedSupportingTokensProcessor.java?rev=368034&view=auto
==============================================================================
--- webservices/commons/trunk/policy/src/examples/secParser/processors/SignedSupportingTokensProcessor.java (added)
+++ webservices/commons/trunk/policy/src/examples/secParser/processors/SignedSupportingTokensProcessor.java Wed Jan 11 06:57:47 2006
@@ -0,0 +1,106 @@
+/*
+ * 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 examples.secParser.processors;
+
+import java.lang.reflect.InvocationTargetException;
+
+import examples.secParser.SecurityPolicy;
+import examples.secParser.SecurityPolicyToken;
+import examples.secParser.SecurityProcessorContext;
+
+/**
+ * @author Werner Dittmann (werner@apache.org)
+ *
+ */
+public class SignedSupportingTokensProcessor {
+ private boolean initializedSignedSupportingTokens = false;
+
+ /**
+ * Intialize the SignedSupportingTokens complex token.
+ *
+ * This method creates a copy of the SignedSupportingTokens token and sets the
+ * handler object to the copy. Then it creates copies of the child tokens
+ * that are allowed for SignedSupportingTokens. These tokens are:
+ *
+ * These copies are also initialized with the handler object and then set as
+ * child tokens of SignedSupportingTokens.
+ *
+ * @param spt
+ * The token that will hold the child tokens.
+ * @throws NoSuchMethodException
+ */
+ private void initializeSignedSupportingTokens(SecurityPolicyToken spt)
+ throws NoSuchMethodException {
+ SecurityPolicyToken tmpSpt = SecurityPolicy.x509Token.copy();
+ tmpSpt.setProcessTokenMethod(new X509TokenProcessor());
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.usernameToken.copy();
+ tmpSpt.setProcessTokenMethod(new UsernameTokenProcessor());
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.algorithmSuite.copy();
+ tmpSpt.setProcessTokenMethod(new AlgorithmSuiteProcessor());
+ spt.setChildToken(tmpSpt);
+
+ SignedPartsElementsProcessor spep = new SignedPartsElementsProcessor();
+ tmpSpt = SecurityPolicy.signedParts.copy();
+ tmpSpt.setProcessTokenMethod(spep);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.signedElements.copy();
+ tmpSpt.setProcessTokenMethod(spep);
+ spt.setChildToken(tmpSpt);
+
+ EncryptedPartsElementsProcessor epep = new EncryptedPartsElementsProcessor();
+ tmpSpt = SecurityPolicy.encryptedParts.copy();
+ tmpSpt.setProcessTokenMethod(epep);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.encryptedElements.copy();
+ tmpSpt.setProcessTokenMethod(epep);
+ spt.setChildToken(tmpSpt);
+
+ }
+
+ public Object doSignedSupportingTokens(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ SecurityPolicyToken spt = spc.readCurrentSecurityToken();
+
+ switch (spc.getAction()) {
+
+ case SecurityProcessorContext.START:
+ if (!initializedSignedSupportingTokens) {
+ try {
+ initializeSignedSupportingTokens(spt);
+ initializedSignedSupportingTokens = true;
+ } catch (NoSuchMethodException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new Boolean(false);
+ }
+ }
+ break;
+ case SecurityProcessorContext.COMMIT:
+ break;
+ case SecurityProcessorContext.ABORT:
+ break;
+ }
+ return new Boolean(true);
+ }
+}
Added: webservices/commons/trunk/policy/src/examples/secParser/processors/SupportingTokensProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/examples/secParser/processors/SupportingTokensProcessor.java?rev=368034&view=auto
==============================================================================
--- webservices/commons/trunk/policy/src/examples/secParser/processors/SupportingTokensProcessor.java (added)
+++ webservices/commons/trunk/policy/src/examples/secParser/processors/SupportingTokensProcessor.java Wed Jan 11 06:57:47 2006
@@ -0,0 +1,105 @@
+/*
+ * 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 examples.secParser.processors;
+
+import examples.secParser.SecurityPolicy;
+import examples.secParser.SecurityPolicyToken;
+import examples.secParser.SecurityProcessorContext;
+
+/**
+ * @author Werner Dittmann (werner@apache.org)
+ *
+ */
+public class SupportingTokensProcessor {
+ private boolean initializedSupportingTokens = false;
+
+ /**
+ * Intialize the SupportingTokens complex token.
+ *
+ * This method creates a copy of the SupportingTokens token and sets the
+ * handler object to the copy. Then it creates copies of the child tokens
+ * that are allowed for SupportingTokens. These tokens are:
+ *
+ * These copies are also initialized with the handler object and then set as
+ * child tokens of SupportingTokens.
+ *
+ * @param spt
+ * The token that will hold the child tokens.
+ * @throws NoSuchMethodException
+ */
+ private void initializeSupportingTokens(SecurityPolicyToken spt)
+ throws NoSuchMethodException {
+ SecurityPolicyToken tmpSpt = SecurityPolicy.x509Token.copy();
+ tmpSpt.setProcessTokenMethod(new X509TokenProcessor());
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.usernameToken.copy();
+ tmpSpt.setProcessTokenMethod(new UsernameTokenProcessor());
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.algorithmSuite.copy();
+ tmpSpt.setProcessTokenMethod(new AlgorithmSuiteProcessor());
+ spt.setChildToken(tmpSpt);
+
+ SignedPartsElementsProcessor spep = new SignedPartsElementsProcessor();
+ tmpSpt = SecurityPolicy.signedParts.copy();
+ tmpSpt.setProcessTokenMethod(spep);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.signedElements.copy();
+ tmpSpt.setProcessTokenMethod(spep);
+ spt.setChildToken(tmpSpt);
+
+ EncryptedPartsElementsProcessor epep = new EncryptedPartsElementsProcessor();
+ tmpSpt = SecurityPolicy.encryptedParts.copy();
+ tmpSpt.setProcessTokenMethod(epep);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.encryptedElements.copy();
+ tmpSpt.setProcessTokenMethod(epep);
+ spt.setChildToken(tmpSpt);
+
+ }
+
+ public Object doSupportingTokens(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ SecurityPolicyToken spt = spc.readCurrentSecurityToken();
+
+ switch (spc.getAction()) {
+
+ case SecurityProcessorContext.START:
+ if (!initializedSupportingTokens) {
+ try {
+ initializeSupportingTokens(spt);
+ initializedSupportingTokens = true;
+ } catch (NoSuchMethodException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new Boolean(false);
+ }
+ }
+ break;
+ case SecurityProcessorContext.COMMIT:
+ break;
+ case SecurityProcessorContext.ABORT:
+ break;
+ }
+ return new Boolean(true);
+ }
+
+}
Added: webservices/commons/trunk/policy/src/examples/secParser/processors/SymmetricBindingProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/examples/secParser/processors/SymmetricBindingProcessor.java?rev=368034&view=auto
==============================================================================
--- webservices/commons/trunk/policy/src/examples/secParser/processors/SymmetricBindingProcessor.java (added)
+++ webservices/commons/trunk/policy/src/examples/secParser/processors/SymmetricBindingProcessor.java Wed Jan 11 06:57:47 2006
@@ -0,0 +1,167 @@
+/*
+ * 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 examples.secParser.processors;
+
+import examples.secParser.SecurityPolicy;
+import examples.secParser.SecurityPolicyToken;
+import examples.secParser.SecurityProcessorContext;
+
+/**
+ * @author Werner Dittmann (werner@apache.org)
+ *
+ */
+public class SymmetricBindingProcessor {
+ private boolean initializedSymmetricBinding = false;
+
+ /**
+ * Intialize the SymmetricBinding complex token.
+ *
+ * This method creates a copy of the SymmetricBinding token and sets the
+ * handler object to the copy. Then it creates copies of the child tokens
+ * that are allowed for SymmetricBinding. These tokens are:
+ *
+ * These copies are also initialized with the handler object and then set as
+ * child tokens of SymmetricBinding.
+ *
+ * @param spt
+ * The token that will hold the child tokens.
+ * @throws NoSuchMethodException
+ */
+ private void initializeSymmetricBinding(SecurityPolicyToken spt)
+ throws NoSuchMethodException {
+
+ SignEncProtectTokenProcessor sept = new SignEncProtectTokenProcessor();
+ SecurityPolicyToken tmpSpt = SecurityPolicy.encryptionToken.copy();
+ tmpSpt.setProcessTokenMethod(sept);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.signatureToken.copy();
+ tmpSpt.setProcessTokenMethod(sept);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.protectionToken.copy();
+ tmpSpt.setProcessTokenMethod(sept);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.algorithmSuite.copy();
+ tmpSpt.setProcessTokenMethod(new AlgorithmSuiteProcessor());
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.layout.copy();
+ tmpSpt.setProcessTokenMethod(new LayoutProcessor());
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.supportingTokens.copy();
+ tmpSpt.setProcessTokenMethod(new SupportingTokensProcessor());
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.signedSupportingTokens.copy();
+ tmpSpt.setProcessTokenMethod(new SignedSupportingTokensProcessor());
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.endorsingSupportingTokens.copy();
+ tmpSpt.setProcessTokenMethod(new EndorsingSupportingTokensProcessor());
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.signedEndorsingSupportingTokens.copy();
+ tmpSpt.setProcessTokenMethod(new SignedEndorsingSupportingTokensProcessor());
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.includeTimestamp.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.encryptBeforeSigning.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.encryptSignature.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.protectTokens.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.onlySignEntireHeadersAndBody.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ }
+
+ public Object doSymmetricBinding(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ SecurityPolicyToken spt = spc.readCurrentSecurityToken();
+
+ switch (spc.getAction()) {
+
+ case SecurityProcessorContext.START:
+ if (!initializedSymmetricBinding) {
+ try {
+ initializeSymmetricBinding(spt);
+ initializedSymmetricBinding = true;
+ } catch (NoSuchMethodException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new Boolean(false);
+ }
+ }
+ break;
+ case SecurityProcessorContext.COMMIT:
+ break;
+ case SecurityProcessorContext.ABORT:
+ break;
+ }
+ return new Boolean(true);
+ }
+
+ public Object doIncludeTimestamp(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doEncryptBeforeSigning(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doEncryptSignature(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doProtectTokens(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doOnlySignEntireHeadersAndBody(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+}
Added: webservices/commons/trunk/policy/src/examples/secParser/processors/UsernameTokenProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/examples/secParser/processors/UsernameTokenProcessor.java?rev=368034&view=auto
==============================================================================
--- webservices/commons/trunk/policy/src/examples/secParser/processors/UsernameTokenProcessor.java (added)
+++ webservices/commons/trunk/policy/src/examples/secParser/processors/UsernameTokenProcessor.java Wed Jan 11 06:57:47 2006
@@ -0,0 +1,104 @@
+/*
+ * 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 examples.secParser.processors;
+
+import org.apache.ws.policy.PrimitiveAssertion;
+
+import examples.secParser.SecurityPolicy;
+import examples.secParser.SecurityPolicyToken;
+import examples.secParser.SecurityProcessorContext;
+
+/**
+ * @author Werner Dittmann (werner@apache.org)
+ */
+public class UsernameTokenProcessor {
+
+ private boolean initializedUsernameToken = false;
+
+ /**
+ * Intialize the UsernameToken complex token.
+ *
+ * This method creates copies of the child tokens that are allowed for
+ * UsernameToken. These tokens are WssUsernameToken10 and
+ * WssUsernameToken11. These copies are also initialized with the handler
+ * object and then set as child tokens of UsernameToken.
+ *
+ * <p/> The handler object must define the methods
+ * <code>doWssUsernameToken10, doWssUsernameToken11</code>.
+ *
+ * @param spt
+ * The token that will hold the child tokens.
+ * @throws NoSuchMethodException
+ */
+ public void initializeUsernameToken(SecurityPolicyToken spt)
+ throws NoSuchMethodException {
+ // SecurityPolicyToken spt = secPol.usernameToken.copy();
+ // spt.setProcessTokenMethod(handler);
+
+ SecurityPolicyToken tmpSpt = SecurityPolicy.wssUsernameToken10.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.wssUsernameToken11.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+ }
+
+ public Object doUsernameToken(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+
+ SecurityPolicyToken spt = spc.readCurrentSecurityToken();
+ switch (spc.getAction()) {
+
+ case SecurityProcessorContext.START:
+ if (!initializedUsernameToken) {
+ try {
+ initializeUsernameToken(spt);
+ initializedUsernameToken = true;
+ } catch (NoSuchMethodException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new Boolean(false);
+ }
+ }
+ System.out.println(spt.getTokenName());
+ PrimitiveAssertion pa = spc.getAssertion();
+ String text = pa.getStrValue();
+ if (text != null) {
+ text = text.trim();
+ System.out.println("Value: '" + text.toString() + "'");
+ }
+ case SecurityProcessorContext.COMMIT:
+ break;
+ case SecurityProcessorContext.ABORT:
+ break;
+ }
+ return new Boolean(true);
+ }
+
+ public Object doWssUsernameToken10(SecurityProcessorContext spc) {
+ System.out.println("Processing wssUsernameToken10");
+ return new Boolean(true);
+ }
+
+ public Object doWssUsernameToken11(SecurityProcessorContext spc) {
+ System.out.println("Processing wssUsernameToken11");
+ return new Boolean(true);
+ }
+
+}
Added: webservices/commons/trunk/policy/src/examples/secParser/processors/X509TokenProcessor.java
URL: http://svn.apache.org/viewcvs/webservices/commons/trunk/policy/src/examples/secParser/processors/X509TokenProcessor.java?rev=368034&view=auto
==============================================================================
--- webservices/commons/trunk/policy/src/examples/secParser/processors/X509TokenProcessor.java (added)
+++ webservices/commons/trunk/policy/src/examples/secParser/processors/X509TokenProcessor.java Wed Jan 11 06:57:47 2006
@@ -0,0 +1,218 @@
+/*
+ * 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 examples.secParser.processors;
+
+import org.apache.ws.policy.PrimitiveAssertion;
+
+import examples.secParser.SecurityPolicy;
+import examples.secParser.SecurityPolicyToken;
+import examples.secParser.SecurityProcessorContext;
+
+/**
+ * @author Werner Dittmann (werner@apache.org)
+ */
+public class X509TokenProcessor {
+ private boolean initializedX509Token = false;
+
+ /**
+ * Intialize the X509 complex token.
+ *
+ * This method creates a copy of the X509Token token and sets the handler
+ * object to the copy. Then it creates copies of the child tokens that are
+ * allowed for X509Token. These tokens are:
+ *
+ * These copies are also initialized with the handler object and then set as
+ * child tokens of X509Token.
+ *
+ * <p/> The handler object that must contain the methods
+ * <code>doX509Token</code>.
+ *
+ * @param spt
+ * The token that will hold the child tokens.
+ * @throws NoSuchMethodException
+ */
+ private void initializeX509Token(SecurityPolicyToken spt)
+ throws NoSuchMethodException {
+
+ SecurityPolicyToken tmpSpt = SecurityPolicy.requireKeyIdentifierReference
+ .copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.requireIssuerSerialReference.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.requireEmbeddedTokenReference.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.requireThumbprintReference.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.wssX509V1Token10.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.wssX509V3Token10.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.wssX509Pkcs7Token10.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.wssX509PkiPathV1Token10.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.wssX509V1Token11.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.wssX509V3Token11.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.wssX509Pkcs7Token11.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+
+ tmpSpt = SecurityPolicy.wssX509PkiPathV1Token11.copy();
+ tmpSpt.setProcessTokenMethod(this);
+ spt.setChildToken(tmpSpt);
+ }
+
+ public Object doX509Token(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+
+ SecurityPolicyToken spt = spc.readCurrentSecurityToken();
+
+ switch (spc.getAction()) {
+
+ case SecurityProcessorContext.START:
+ if (!initializedX509Token) {
+ try {
+ initializeX509Token(spt);
+ initializedX509Token = true;
+ } catch (NoSuchMethodException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return new Boolean(false);
+ }
+ }
+ PrimitiveAssertion pa = spc.getAssertion();
+ String text = pa.getStrValue();
+ if (text != null) {
+ text = text.trim();
+ System.out.println("Value: '" + text.toString() + "'");
+ }
+ case SecurityProcessorContext.COMMIT:
+ break;
+ case SecurityProcessorContext.ABORT:
+ break;
+ }
+ return new Boolean(true);
+ }
+
+ public Object doRequireKeyIdentifierReference(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doRequireIssuerSerialReference(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doRequireEmbeddedTokenReference(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doRequireThumbprintReference(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doWssX509V1Token10(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object dowssX509V3Token10(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doWssX509Pkcs7Token10(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doWssX509PkiPathV1Token10(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doWssX509V1Token11(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doWssX509V3Token11(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doWssX509Pkcs7Token11(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+ public Object doWssX509PkiPathV1Token11(SecurityProcessorContext spc) {
+ System.out.println("Processing "
+ + spc.readCurrentSecurityToken().getTokenName() + ": "
+ + SecurityProcessorContext.ACTION_NAMES[spc.getAction()]);
+ return new Boolean(true);
+ }
+
+}