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");
  +            }
  +        }
  +    }
  +}