KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > base > login > LoginCallbackHandler


1 /*
2  * Created on Oct 4, 2004
3  * by Alexander Bieber
4  *
5  */

6 package com.nightlabs.ipanema.base.login;
7
8 import java.io.IOException JavaDoc;
9
10 import javax.security.auth.callback.Callback JavaDoc;
11 import javax.security.auth.callback.CallbackHandler JavaDoc;
12 import javax.security.auth.callback.NameCallback JavaDoc;
13 import javax.security.auth.callback.PasswordCallback JavaDoc;
14 import javax.security.auth.callback.UnsupportedCallbackException JavaDoc;
15 import javax.security.auth.login.LoginException JavaDoc;
16
17 /**
18  * This is the CallbackHandler for the JAAS Login.
19  * It does no user interaction it rather takes username and password
20  * from the Login class.
21  * @author Alexander Bieber
22  */

23 public class LoginCallbackHandler implements CallbackHandler JavaDoc {
24
25     /* (non-Javadoc)
26      * @see javax.security.auth.callback.CallbackHandler#handle(javax.security.auth.callback.Callback[])
27      */

28     public void handle(Callback JavaDoc[] callbacks) throws IOException JavaDoc,
29             UnsupportedCallbackException JavaDoc {
30         try {
31             for (int i = 0; i < callbacks.length; i++) {
32                 // user interaction has been done in implementations of ILoginHandler
33
// so here we just pass the values
34
if (callbacks[i] instanceof NameCallback JavaDoc)
35                             ((NameCallback JavaDoc)callbacks[i]).setName(Login.getLogin(false).getLoginContext().getUsername());
36                 if (callbacks[i] instanceof PasswordCallback JavaDoc)
37                                 ((PasswordCallback JavaDoc)callbacks[i]).setPassword(Login.getLogin(false).getLoginContext().getPassword().toCharArray());
38             }
39         } catch (LoginException JavaDoc x) {
40             throw new RuntimeException JavaDoc("Login.getLogin(false) should never throw this exception!", x);
41         }
42             // TODO Maybe more data has to be set ??
43
}
44
45 }
46
Popular Tags