/** * login * * @param userName login userName * @param password login password * @throws InvalidateLoginUserException userName or password invalidate */ public static void login(String userName, String password) throws InvalidateLoginUserException { try { Subject subject = getSubject(); UsernamePasswordToken token = new UsernamePasswordToken(); token.setUsername(userName); token.setPassword(password.toCharArray()); subject.login(token); } catch (Exception e) { throw new InvalidateLoginUserException("userName or password error.", e); } }
/** 认证回调函数,登录时调用. */ @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException { UsernamePasswordToken token = (UsernamePasswordToken) authcToken; SecurityUser<Long> user = userHessianService.findUserByAccount(token.getUsername(), UserStaEnum.ENABLE); if (user != null) { token.setUsername(user.getLoginName()); return new SimpleAuthenticationInfo(user, user.getPassWord(), getName()); } else { return null; } }