001: /*
002: * Danet GmbH
003: * Beratung und Software-Entwicklung
004: * Geschäftstelle AN
005: *
006: * $Id: STProjectLoginContext.java,v 1.3 2006/10/10 15:36:53 drmlipp Exp $
007: *
008: * $Log: STProjectLoginContext.java,v $
009: * Revision 1.3 2006/10/10 15:36:53 drmlipp
010: * Using ubiquitous login ML now.
011: *
012: * Revision 1.2 2006/06/22 22:04:40 mlipp
013: * Systemtests running again.
014: *
015: * Revision 1.1.1.2 2003/12/19 13:01:46 drmlipp
016: * Updated to 1.1rc1
017: *
018: * Revision 1.3 2003/11/25 08:13:36 lipp
019: * WLS support.
020: *
021: * Revision 1.2 2003/05/22 11:36:22 lipp
022: * Cleaned up usage of security domains.
023: *
024: * Revision 1.1 2003/04/26 16:46:55 lipp
025: * Made unittests and systemtests coexist in eclipse.
026: *
027: * Revision 1.1 2003/04/16 19:58:49 lipp
028: * Adapted to jdk 1.4
029: *
030: * Revision 1.1 2002/11/01 09:02:01 weidauer
031: * initial version
032: *
033: * Revision 1.1 2001/12/10 15:27:51 lipp
034: * Adapting to secure beans.
035: *
036: */
037:
038: package common;
039:
040: import java.io.IOException;
041:
042: import javax.security.auth.callback.Callback;
043: import javax.security.auth.callback.CallbackHandler;
044: import javax.security.auth.callback.NameCallback;
045: import javax.security.auth.callback.PasswordCallback;
046: import javax.security.auth.callback.TextOutputCallback;
047: import javax.security.auth.callback.UnsupportedCallbackException;
048: import javax.security.auth.login.LoginContext;
049: import javax.security.auth.login.LoginException;
050:
051: /**
052: * Simple login context for unit tests.
053: */
054: public class STProjectLoginContext extends LoginContext {
055:
056: private static class CBH implements CallbackHandler {
057: public void handle(Callback[] callbacks)
058: throws UnsupportedCallbackException, IOException {
059: for (int i = 0; i < callbacks.length; i++) {
060: if (callbacks[i] instanceof TextOutputCallback) {
061: // display the message according to the specified type
062: TextOutputCallback toc = (TextOutputCallback) callbacks[i];
063: switch (toc.getMessageType()) {
064: case TextOutputCallback.INFORMATION:
065: System.err.println(toc.getMessage());
066: break;
067: case TextOutputCallback.ERROR:
068: System.err
069: .println("ERROR: " + toc.getMessage());
070: break;
071: case TextOutputCallback.WARNING:
072: System.err.println("WARNING: "
073: + toc.getMessage());
074: break;
075: default:
076: throw new IOException(
077: "Unsupported message type: "
078: + toc.getMessageType());
079: }
080: } else if (callbacks[i] instanceof NameCallback) {
081: // prompt the user for a username
082: NameCallback nc = (NameCallback) callbacks[i];
083: nc.setName("ML");
084: } else if (callbacks[i] instanceof PasswordCallback) {
085: // prompt the user for sensitive information
086: PasswordCallback pc = (PasswordCallback) callbacks[i];
087: pc.setPassword("ML".toCharArray());
088: } else if (callbacks[i].getClass().getName().equals(
089: "weblogic.security.auth.callback.URLCallback")) {
090: } else {
091: throw new UnsupportedCallbackException(
092: callbacks[i], "Unrecognized Callback");
093: }
094: }
095: }
096: }
097:
098: public STProjectLoginContext() throws LoginException {
099: super ("danetworkflow", new CBH());
100: }
101:
102: }
|