Просмотр исходного кода

[登录][修改]:登录错误修改

release_toaliyun_real
Stormeye Wu 6 лет назад
Родитель
Сommit
abbb9329e0
3 измененных файлов: 32 добавлений и 18 удалений
  1. +17
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java
  2. +15
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java
  3. +0
    -18
      mallinkAdmin/src/main/java/com/iformall/shiro/MyRetryLimitCredentialsMatcher.java

+ 17
- 0
mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java Просмотреть файл

@@ -222,6 +222,14 @@ public class HomeController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
}
}
if (user == null) {
logger.error(ErrorCode.USER_IS_EMPTY.getMessage());
return new ResultData(ErrorCode.USER_IS_EMPTY);
}
if (user.getStatus()==null ||!EnumMallUserStatus.VALID.getCode().equals(user.getStatus())) {
logger.error(ErrorCode.USER_IS_LOCKED.getMessage());
return new ResultData(ErrorCode.USER_IS_LOCKED);
}

boolean isLogin = false;
try {
@@ -328,6 +336,14 @@ public class HomeController extends BaseController {
List<MallUserInfoVo> userList = mallUserInfoService.getUserByPhone(phone);
if(userList.size() == 1) {
MallUserInfoVo user = userList.get(0);
if (user == null) {
logger.error(ErrorCode.USER_IS_EMPTY.getMessage());
return new ResultData(ErrorCode.USER_IS_EMPTY);
}
if (user.getStatus()==null ||!EnumMallUserStatus.VALID.getCode().equals(user.getStatus())) {
logger.error(ErrorCode.USER_IS_LOCKED.getMessage());
return new ResultData(ErrorCode.USER_IS_LOCKED);
}
// check 验证码正确
boolean isValidCode = false;
try {
@@ -336,6 +352,7 @@ public class HomeController extends BaseController {
return new ResultData(Result.ERROR, e.getMessage());
}
if(isValidCode) {

// 验证码正确,直接登录
try {
Subject subject = SecurityUtils.getSubject();


+ 15
- 0
mallinkAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java Просмотреть файл

@@ -10,6 +10,7 @@ import com.iformall.domain.po.MallUserAction;
import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.vo.MallUserInfoVo;
import com.iformall.enums.EnumMallUserAction;
import com.iformall.enums.EnumMallUserStatus;
import com.iformall.enums.EnumUserAdmin;
import com.iformall.service.MallUserActionService;
import com.iformall.service.MallUserInfoService;
@@ -123,6 +124,14 @@ public class WechatLoginController extends BaseController {
Map<String, Object> ret = new HashMap<>();
// 唯一用户
MallUserInfo user = userList.get(0);
if (user == null) {
ret.put("code", ErrorCode.USER_IS_EMPTY.getCode());
ret.put("message", ErrorCode.USER_IS_EMPTY.getMessage());
}
if (user.getStatus()==null ||!EnumMallUserStatus.VALID.getCode().equals(user.getStatus())) {
ret.put("code", ErrorCode.USER_IS_LOCKED.getCode());
ret.put("message", ErrorCode.USER_IS_LOCKED.getMessage());
}
boolean isLogin = false;
try {
Subject subject = SecurityUtils.getSubject();
@@ -272,6 +281,12 @@ public class WechatLoginController extends BaseController {
log.info("KEY: " + openKey + " deleted");

MallUserInfo userInfo = mallUserInfoService.getByUsername(userName);
if (userInfo == null) {
return new ResultData(ErrorCode.USER_IS_EMPTY);
}
if (userInfo.getStatus()==null ||!EnumMallUserStatus.VALID.getCode().equals(userInfo.getStatus())) {
return new ResultData(ErrorCode.USER_IS_LOCKED);
}
if(userInfo.getWebOpenId().equals(openId)) {
boolean isLogin = false;
try {


+ 0
- 18
mallinkAdmin/src/main/java/com/iformall/shiro/MyRetryLimitCredentialsMatcher.java Просмотреть файл

@@ -1,23 +1,13 @@
package com.iformall.shiro;

import com.iformall.common.ErrorCode;
import com.iformall.domain.po.MallUserInfo;
import com.iformall.enums.EnumLoginType;
import com.iformall.enums.EnumMallUserStatus;
import com.iformall.service.MallUserInfoService;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.DisabledAccountException;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
import org.springframework.context.annotation.Configuration;

import javax.annotation.Resource;

@Configuration
public class MyRetryLimitCredentialsMatcher extends HashedCredentialsMatcher {
@Resource
private MallUserInfoService userService;

@Override
public boolean doCredentialsMatch(AuthenticationToken authcToken, AuthenticationInfo info) {
@@ -26,14 +16,6 @@ public class MyRetryLimitCredentialsMatcher extends HashedCredentialsMatcher {
if(tk.getType().equals(EnumLoginType.NOPASSWD)){
// 获取用户的输入的账号.
String username = (String)tk.getPrincipal();
MallUserInfo user = userService.getByUsername(username);
if(user == null) {
throw new UnknownAccountException(ErrorCode.USER_IS_EMPTY.getMessage());
}
// 用户被禁用
if(user.getStatus()==null ||!EnumMallUserStatus.VALID.getCode().equals(user.getStatus())) {
throw new DisabledAccountException(ErrorCode.USER_IS_LOCKED.getMessage());
}
return true;
}
boolean matches = super.doCredentialsMatch(authcToken, info);


Загрузка…
Отмена
Сохранить