You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by we...@apache.org on 2005/05/06 17:31:22 UTC
cvs commit: ws-fx/wss4j/interop/org/apache/ws/axis/oasis PWCallback1.java
werner 2005/05/06 08:31:22
Modified: wss4j/interop/org/apache/ws/axis/oasis PWCallback1.java
Log:
Add some code to show how the callback class may
check password type text or an unknown type. Be
aware that this check is for the interop tests only and
is _very_ simple.
Revision Changes Path
1.5 +107 -86 ws-fx/wss4j/interop/org/apache/ws/axis/oasis/PWCallback1.java
Index: PWCallback1.java
===================================================================
RCS file: /home/cvs/ws-fx/wss4j/interop/org/apache/ws/axis/oasis/PWCallback1.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- PWCallback1.java 10 Jun 2004 11:38:31 -0000 1.4
+++ PWCallback1.java 6 May 2005 15:31:22 -0000 1.5
@@ -1,86 +1,107 @@
-/*
- * Copyright 2003-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.
- *
- */
-
-/**
- * @author Werner Dittmann (Werner.Dittmann@siemens.com)
- */
-package org.apache.ws.axis.oasis;
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import java.io.IOException;
-
-/**
- * Class PWCallback
- */
-public class PWCallback1 implements CallbackHandler {
-
- /** Field key */
- private static final byte[] key = {
- (byte) 0x31, (byte) 0xfd, (byte) 0xcb, (byte) 0xda, (byte) 0xfb,
- (byte) 0xcd, (byte) 0x6b, (byte) 0xa8, (byte) 0xe6, (byte) 0x19,
- (byte) 0xa7, (byte) 0xbf, (byte) 0x51, (byte) 0xf7, (byte) 0xc7,
- (byte) 0x3e, (byte) 0x80, (byte) 0xae, (byte) 0x98, (byte) 0x51,
- (byte) 0xc8, (byte) 0x51, (byte) 0x34, (byte) 0x04,
- };
-
- /*
- * (non-Javadoc)
- * @see javax.security.auth.callback.CallbackHandler#handle(javax.security.auth.callback.Callback[])
- */
-
- /**
- * Method handle
- *
- * @param callbacks
- * @throws java.io.IOException
- * @throws javax.security.auth.callback.UnsupportedCallbackException
- */
- public void handle(Callback[] callbacks)
- throws IOException, UnsupportedCallbackException {
-
- for (int i = 0; i < callbacks.length; i++) {
- if (callbacks[i] instanceof WSPasswordCallback) {
- WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
-
- /*
- * here call a function/method to lookup the password for
- * the given identifier (e.g. a user name or keystore alias)
- * e.g.: pc.setPassword(passStore.getPassword(pc.getIdentfifier))
- * for Testing we supply a fixed name here.
- */
- if (pc.getUsage() == WSPasswordCallback.KEY_NAME) {
- pc.setKey(key);
- } else if(pc.getIdentifer().equals("1fb7623be7b2f4831ffc3f3741fa09dd_1e149434-9d3a-4adc-9284-4cfdc595012f")) {
- pc.setPassword("interop");
- } else if(pc.getIdentifer().equals("c82f74d031dabf9d7546f40ad07c32c0_1e149434-9d3a-4adc-9284-4cfdc595012f")) {
- pc.setPassword("interop");
- } else if(pc.getIdentifer().equals("Ron")) {
- pc.setPassword("noR");
- } else {
- pc.setPassword("sirhC");
- }
- } else {
- throw new UnsupportedCallbackException(callbacks[i],
- "Unrecognized Callback");
- }
- }
- }
-}
+/*
+ * Copyright 2003-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.
+ *
+ */
+
+/**
+ * @author Werner Dittmann (Werner.Dittmann@siemens.com)
+ */
+package org.apache.ws.axis.oasis;
+
+import org.apache.ws.security.WSPasswordCallback;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+import java.io.IOException;
+
+/**
+ * Class PWCallback
+ */
+public class PWCallback1 implements CallbackHandler {
+
+ /** Field key */
+ private static final byte[] key = {
+ (byte) 0x31, (byte) 0xfd, (byte) 0xcb, (byte) 0xda, (byte) 0xfb,
+ (byte) 0xcd, (byte) 0x6b, (byte) 0xa8, (byte) 0xe6, (byte) 0x19,
+ (byte) 0xa7, (byte) 0xbf, (byte) 0x51, (byte) 0xf7, (byte) 0xc7,
+ (byte) 0x3e, (byte) 0x80, (byte) 0xae, (byte) 0x98, (byte) 0x51,
+ (byte) 0xc8, (byte) 0x51, (byte) 0x34, (byte) 0x04,
+ };
+
+ /*
+ * (non-Javadoc)
+ * @see javax.security.auth.callback.CallbackHandler#handle(javax.security.auth.callback.Callback[])
+ */
+
+ /**
+ * Method handle
+ *
+ * @param callbacks
+ * @throws java.io.IOException
+ * @throws javax.security.auth.callback.UnsupportedCallbackException
+ */
+ public void handle(Callback[] callbacks)
+ throws IOException, UnsupportedCallbackException {
+
+ for (int i = 0; i < callbacks.length; i++) {
+ if (callbacks[i] instanceof WSPasswordCallback) {
+ WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
+
+ /*
+ * This usage type is used only in case we received a
+ * username token with a password of type PasswordText or
+ * an unknown password type.
+ *
+ * This case the WSPasswordCallback object contains the
+ * identifier (aka username), the password we received, and
+ * the password type string to identify the type.
+ *
+ * Here we perform only a very simple check.
+ */
+ if (pc.getUsage() == WSPasswordCallback.USERNAME_TOKEN_UNKNOWN) {
+ if(pc.getIdentifer().equals("Ron") && pc.getPassword().equals("noR")) {
+ return;
+ }
+ if (pc.getPassword().equals("sirhC")) {
+ return;
+ }
+ throw new UnsupportedCallbackException(callbacks[i],
+ "check failed");
+ }
+ /*
+ * here call a function/method to lookup the password for
+ * the given identifier (e.g. a user name or keystore alias)
+ * e.g.: pc.setPassword(passStore.getPassword(pc.getIdentfifier))
+ * for Testing we supply a fixed name here.
+ */
+ if (pc.getUsage() == WSPasswordCallback.KEY_NAME) {
+ pc.setKey(key);
+ } else if(pc.getIdentifer().equals("1fb7623be7b2f4831ffc3f3741fa09dd_1e149434-9d3a-4adc-9284-4cfdc595012f")) {
+ pc.setPassword("interop");
+ } else if(pc.getIdentifer().equals("c82f74d031dabf9d7546f40ad07c32c0_1e149434-9d3a-4adc-9284-4cfdc595012f")) {
+ pc.setPassword("interop");
+ } else if(pc.getIdentifer().equals("Ron")) {
+ pc.setPassword("noR");
+ } else {
+ pc.setPassword("sirhC");
+ }
+ } else {
+ throw new UnsupportedCallbackException(callbacks[i],
+ "Unrecognized Callback");
+ }
+ }
+ }
+}