1 15 16 package com.jdon.security.ejb; 17 18 import com.jdon.util.Debug; 19 import javax.security.auth.Subject ; 20 import java.security.Principal ; 21 import javax.security.auth.login.LoginContext ; 22 import javax.security.auth.callback.CallbackHandler ; 23 24 import org.jboss.security.SimplePrincipal; 25 import org.jboss.security.auth.callback.SecurityAssociationHandler; 26 27 54 55 public class LoginClientUtil { 56 private final static String module = LoginClientUtil.class.getName(); 57 58 65 public static boolean login(String username, String password, 66 String Login_Module_Name) { 67 Subject subject = null; 68 try { 69 CallbackHandler pch = getJBossCallbackHandler(username, password); 71 LoginContext loginCtx = new LoginContext (Login_Module_Name, pch); 72 Debug.logVerbose("[JdonFramework] begin to login ", module); 73 loginCtx.login(); 74 75 Debug.logVerbose("[JdonFramework] login successfully, subject=" + subject, module); 76 return true; 77 } catch (Exception e) { 78 e.printStackTrace(); 79 Debug.logError(e, module); 80 return false; 81 } 82 83 } 84 85 private static CallbackHandler getJBossCallbackHandler(String username, 86 String password) { 87 SecurityAssociationHandler pch = new SecurityAssociationHandler(); 88 Principal user = getJBossPrincipal(username); 89 pch.setSecurityInfo(user, password.toCharArray()); 90 return pch; 91 } 92 93 private static Principal getJBossPrincipal(String username) { 94 return new SimplePrincipal(username); 95 } 96 97 private static CallbackHandler getCallbackHandler(String username, 98 String password) { 99 AppCallbackHandler pch = new AppCallbackHandler(username, password); 100 return pch; 101 102 } 103 104 } 105 | Popular Tags |