![]() |
The Java Developers Almanac 1.4Order this book from Amazon. |
e508. Getting the Login Name of the Currently Logged-In UserThis example retrieves the login name of the user that is running the application.try { String loginAppName = "GetLoginNameUnix"; // If the application is run on NT rather than Unix, use this name loginAppName = "GetLoginNameNT"; // Create login context LoginContext lc = new LoginContext(loginAppName, new com.sun.security.auth.callback.TextCallbackHandler()); // Retrieve the information on the logged-in user lc.login(); // Get the authenticated subject Subject subject = lc.getSubject(); // Get the subject principals Principal principals[] = (Principal[])subject.getPrincipals().toArray(new Principal[0]); for (int i=0; i<principals.length; i++) { if (principals[i] instanceof com.sun.security.auth.NTUserPrincipal || principals[i] instanceof com.sun.security.auth.UnixPrincipal) { String loggedInUserName = principals[i].getName(); } } } catch (LoginException e) { // Login failed }The example requires a login configuration file that specifies the login modules to execute when using a particular login-app name. This configuration file specifies two login-app names: GetLoginNameNT { com.sun.security.auth.module.NTLoginModule required; }; GetLoginNameUnix { com.sun.security.auth.module.UnixLoginModule required; };The login configuration file is specified at the command line: > java -Djava.security.auth.login.config=myconfig.config MyApp
e509. Handling the Callbacks from a Login Module © 2002 Addison-Wesley. |