KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > asyncinvoke > AuthCallbackHandler


1 /*
2  * Created on Mar 24, 2005
3  */

4 package com.nightlabs.ipanema.asyncinvoke;
5
6 import java.io.IOException JavaDoc;
7
8 import javax.security.auth.callback.Callback JavaDoc;
9 import javax.security.auth.callback.CallbackHandler JavaDoc;
10 import javax.security.auth.callback.NameCallback JavaDoc;
11 import javax.security.auth.callback.PasswordCallback JavaDoc;
12 import javax.security.auth.callback.UnsupportedCallbackException JavaDoc;
13
14 import com.nightlabs.ipanema.servermanager.IpanemaServerManager;
15 import com.nightlabs.ipanema.servermanager.j2ee.SecurityReflector;
16
17 /**
18  * @author Marco Schulze - marco at nightlabs dot de
19  */

20 public class AuthCallbackHandler implements CallbackHandler JavaDoc
21 {
22     private String JavaDoc organisationID;
23     private String JavaDoc userID;
24     private String JavaDoc userName;
25     private char[] password;
26
27     public AuthCallbackHandler(IpanemaServerManager ism, AsyncInvokeEnvelope envelope) {
28         SecurityReflector.UserDescriptor caller = envelope.getCaller();
29         this.organisationID = caller.getOrganisationID();
30         this.userID = caller.getUserID();
31         this.userName = userID + '@' + organisationID;
32         this.password = ism.ipanemaSecurity_createTempUserPassword(
33                 organisationID, userID).toCharArray();
34     }
35
36     /**
37      * @see javax.security.auth.callback.CallbackHandler#handle(javax.security.auth.callback.Callback[])
38      */

39     public void handle(Callback JavaDoc[] callbacks)
40     throws IOException JavaDoc,
41             UnsupportedCallbackException JavaDoc
42     {
43 // if (callbacks.length != 2)
44
// throw new IllegalArgumentException("callbacks.length != 2!");
45
//
46
for (int i = 0; i < callbacks.length; ++i) {
47             Callback JavaDoc cb = callbacks[i];
48             if (cb instanceof NameCallback JavaDoc) {
49                 ((NameCallback JavaDoc)cb).setName(userName);
50             }
51             else if (cb instanceof PasswordCallback JavaDoc) {
52                 ((PasswordCallback JavaDoc)cb).setPassword(password);
53             }
54             else throw new UnsupportedCallbackException JavaDoc(cb);
55         }
56             
57     }
58
59 }
60
Popular Tags