1 /*
2 * Danet GmbH
3 * Beratung und Software-Entwicklung
4 * Gesch?ftstelle AN
5 *
6 * $Id: STProjectLoginContext.java,v 1.2 2003/05/22 11:36:22 lipp Exp $
7 *
8 * $Log: STProjectLoginContext.java,v $
9 * Revision 1.2 2003/05/22 11:36:22 lipp
10 * Cleaned up usage of security domains.
11 *
12 * Revision 1.1 2003/04/26 16:46:55 lipp
13 * Made unittests and systemtests coexist in eclipse.
14 *
15 * Revision 1.1 2003/04/16 19:58:49 lipp
16 * Adapted to jdk 1.4
17 *
18 * Revision 1.1 2002/11/01 09:02:01 weidauer
19 * initial version
20 *
21 * Revision 1.1 2001/12/10 15:27:51 lipp
22 * Adapting to secure beans.
23 *
24 */
25
26 package common;
27 import java.io.IOException;
28
29 import javax.security.auth.callback.Callback;
30 import javax.security.auth.callback.CallbackHandler;
31 import javax.security.auth.callback.NameCallback;
32 import javax.security.auth.callback.PasswordCallback;
33 import javax.security.auth.callback.TextOutputCallback;
34 import javax.security.auth.callback.UnsupportedCallbackException;
35 import javax.security.auth.login.LoginContext;
36 import javax.security.auth.login.LoginException;
37
38 /**
39 * Simple login context for unit tests.
40 */
41 public class STProjectLoginContext extends LoginContext {
42
43 private static class CBH implements CallbackHandler {
44 public void handle (Callback[] callbacks)
45 throws UnsupportedCallbackException, IOException {
46 for (int i = 0; i < callbacks.length; i++) {
47 if (callbacks[i] instanceof TextOutputCallback) {
48 // display the message according to the specified type
49 TextOutputCallback toc = (TextOutputCallback)callbacks[i];
50 switch (toc.getMessageType()) {
51 case TextOutputCallback.INFORMATION:
52 System.err.println(toc.getMessage());
53 break;
54 case TextOutputCallback.ERROR:
55 System.err.println("ERROR: " + toc.getMessage());
56 break;
57 case TextOutputCallback.WARNING:
58 System.err.println("WARNING: " + toc.getMessage());
59 break;
60 default:
61 throw new IOException("Unsupported message type: " +
62 toc.getMessageType());
63 }
64 } else if (callbacks[i] instanceof NameCallback) {
65 // prompt the user for a username
66 NameCallback nc = (NameCallback)callbacks[i];
67 nc.setName("junit");
68 } else if (callbacks[i] instanceof PasswordCallback) {
69 // prompt the user for sensitive information
70 PasswordCallback pc = (PasswordCallback)callbacks[i];
71 pc.setPassword("junit".toCharArray());
72 } else {
73 throw new UnsupportedCallbackException
74 (callbacks[i], "Unrecognized Callback");
75 }
76 }
77 }
78 }
79
80 public STProjectLoginContext () throws LoginException {
81 super ("danetworkflow", new CBH());
82 }
83
84 }