Beispiel #1
0
 /**
  * 更新当前登录用户的最后登录信息.如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);
 }
Beispiel #2
0
  /**
   * 初始化用户数据
   *
   * @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));
    }
  }
Beispiel #3
0
  /** 登录 */
  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;
      }
    }
  }