/** 注册后直接登录 */ public String loginAfterRegister() { if (this.authenticationByShiro( user.getUserName(), this.pwdEncoder.encodePassword(user.getPassword()), this.rememberMe)) { User loginUser = this.userManager.getByUserName(this.user.getUserName()); // 初始化用户对象 initCurrentUserInfo(loginUser); // 更新登录状态 updateUserLoginInfo(loginUser); return SUCCESS; } return INPUT; }
/** * 初始化用户数据 * * @param logUser */ private void initCurrentUserInfo(User logUser) { // current user session.put(Constants.CURRENT_USER, logUser); session.put(Constants.LOGIN_USERNAME, logUser.getRealName()); session.put(Constants.LOGIN_USERID, logUser.getUserid()); /* 所有用户模块 */ Set<Module> allModules = new HashSet<Module>(); List<Module> allModuleList = (List<Module>) userManager.getUserModules(logUser); for (Module m : allModuleList) { allModules.add(m); } // session.put(Constants.CURRENT_USER_MODULES,allModules); // 初始化菜单 this.initUserMenus(allModules); // log.debug(logUser.getUserRoles()); // /* // * 当前用户当前所有角色信息 // */ // List allRoles=userManager.getUserRoles(logUser); // session.put(Constants.CURRENT_USER_ROLES, allRoles); // // /* 所有用户权限 */ // List allPermissions=userManager.getUserPermissions(logUser); // session.put(Constants.CURRENT_USER_PERMISSIONS,allPermissions); // forward page String goingToURL = (String) session.get(Constants.FORWARD_TO_URL); if (StringUtils.isNotBlank(goingToURL)) { setForwardToURL(goingToURL); session.remove(Constants.FORWARD_TO_URL); if (this.log.isInfoEnabled()) { this.log.info("FORWARD URL is :" + goingToURL); } } else { setForwardToURL(globalSetting.getParam(Constants.DEFAULT_HOMEPAGE)); } }
/** 登录 */ public String execute() { // 判断是否匿名登录 if (this.user.getUserName() == null || "".equals(this.user.getUserName().trim())) { this.user = userManager.getById( Integer.parseInt(globalSetting.getParam(Constants.ANONYMOUSE_USERID))); if (log.isDebugEnabled()) { log.debug("使用匿名用户登录"); } if (this.authenticationByShiro(user.getUserName(), user.getPassword(), this.rememberMe)) { initCurrentUserInfo(this.user); return SUCCESS; } return INPUT; } // 如果是通过登录页面登录 else { if (validateCaptcha()) { if (this.authenticationByShiro( user.getUserName(), this.pwdEncoder.encodePassword(user.getPassword()), this.rememberMe)) { User loginUser = this.userManager.getByUserName(this.user.getUserName()); // 初始化用户对象 initCurrentUserInfo(loginUser); // 更新登录状态 updateUserLoginInfo(loginUser); return SUCCESS; } return INPUT; } else { return INPUT; } } }
/** * 更新当前登录用户的最后登录信息.如IP.时间 * * @param logUser */ private void updateUserLoginInfo(User logUser) { // 更新最后登录信息 logUser.setLastLoginIp(RequestUtils.getIpAddr(getRequest())); logUser.setLastLoginTime(new Date()); if (logUser.getLoginCount() != null) { logUser.setLoginCount(logUser.getLoginCount() + 1); } else { logUser.setLoginCount(1); } userManager.update(logUser); }