1 /*
2  * Created on Aug 22, 2003
3  */
4 package org.jyperion.j2ee.sample.sfsb.client;
5 
6 import java.io.IOException;
7 
8 import javax.security.auth.callback.Callback;
9 import javax.security.auth.callback.CallbackHandler;
10import javax.security.auth.callback.NameCallback;
11import javax.security.auth.callback.PasswordCallback;
12import javax.security.auth.callback.UnsupportedCallbackException;
13
14/**
15 * Username / Password callback handler
16 * 
17 * @author janaudy
18 */
19public class UPCallbackHandler implements CallbackHandler {
20    /**
21     * Name and Password
22     */
23    private String name = null, password = null;
24    
25    /**
26     * Constructor
27     * 
28     * @param name
29     * @param password
30     */
31    public UPCallbackHandler(String name, String password) {
32        System.out.println("UPCallbackHandler::Constructor("+name+", "+password+")");
33        this.name = name;
34        this.password = password;
35    }
36
37    /**
38     * handle
39     * 
40     * @see javax.security.auth.callback.CallbackHandler#handle(javax.security.auth.callback.Callback[])
41     */
42    public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
43      System.out.println("---> UPCallbackHandler::handle " + callbacks);
44      
45      for(int i=0; i < callbacks.length; i++) {
46        Callback callback = callbacks[i];
47        
48        if (callback instanceof NameCallback) {
49            ((NameCallback)callback).setName(this.name);
50        } else if (callback instanceof PasswordCallback) {
51            ((PasswordCallback)callback).setPassword(this.password.toCharArray());
52        } else {
53            throw new UnsupportedCallbackException(callback);
54        }           
55      } //for
56    } // handle
57}
58