用户登录功能完成

yun-zuoyi
wei.peng 7 years ago
parent 3bce009cfc
commit 04ba139eb6

@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.*;
import org.apache.shiro.authc.AuthenticationException;
import sun.rmi.runtime.Log;
import java.util.List;
@ -23,7 +24,7 @@ public interface ISysUserService {
* @param languageCode
* @return
*/
SessionUser queryUserLogin(String loginName, String password, String languageCode);
SessionUser queryUserLogin(String loginName, String password, String languageCode) throws AuthenticationException;
/**
*

@ -14,6 +14,7 @@ import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authc.AuthenticationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -63,7 +64,9 @@ public class AuthController {
ResultBean result = new ResultBean(true, "", AuthUtil.getSessionUser());
result.setUrl("/");
return result;
} catch (ImppBusiException e) {
}catch (AuthenticationException e) {
return new ResultBean(false,e.getMessage());
}catch (ImppBusiException e) {
return new ResultBean(false,e.getErrorDetail() + ",so:" + e.getErrorSolution());
}catch (Exception e){
return ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());

@ -13,6 +13,7 @@ import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -86,31 +87,20 @@ public class SystemLoginService implements ISystemLoginService {
*/
public SysUser getUserLoginInfo(String loginName,String pwd) {
SysUser user = sysUserRDao.getByProperty("userLoginName",loginName);
try { // 密码加密
pwd = EncryptTool.hexMD5(pwd);
}catch (Exception e){
e.printStackTrace();
}
if(user == null){ //用户不存在
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.LOGIN_EXCEPTION.getCode())
.setErrorDetail("用户不存在")
.setErrorSolution("重新登陆")
.build();
}
if (!StringUtils.equals(user.getUserLoginPassword(),pwd )) { //密码不符
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.LOGIN_EXCEPTION.getCode())
.setErrorDetail("登陆密码错误")
.setErrorSolution("重新输入")
.build();
throw new AuthenticationException("用户不存在");
}else {
try { // 密码加密
pwd = EncryptTool.hexMD5(pwd);
} catch (Exception e) {
LOGGER.error("登录密码加密出错。");
throw new AuthenticationException("登陆密码错误");
}
if (!StringUtils.equals(user.getUserLoginPassword(), pwd)) { //密码不符
throw new AuthenticationException("登陆密码错误");
}
return user;
}
return user;
}
/**

@ -19,6 +19,7 @@ import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationToken;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -71,33 +72,38 @@ public class SysUserService implements ISysUserService {
private RefUserPositionRepository refUserPositionRDao;
@Override
public SessionUser queryUserLogin(String loginName, String password, String languageCode) {
public SessionUser queryUserLogin(String loginName, String password, String languageCode) throws AuthenticationException {
LOGGER.debug("平台用户 SYS_USER loginName:{} \t password:{} \t languageCode:{}", loginName, password, languageCode);
SysUser user = getSysUserByLoginName(loginName);
if(user == null){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.LOGIN_USER_NAME_EXCEPTION.getCode())
.setErrorDetail("用户名不存在")
.setErrorSolution("请重新输入用户名")
.build();
}
AuthenticationToken token = null;
switch (user.getUserTypeId()) {
case 2:
token = new AdminToken(loginName, password, languageCode);
break;
case 3:
token = new SaAdminToken(loginName, password, languageCode);
break;
default:
token = new UserToken(loginName, password, languageCode);
break;
}
// SysUser user = this.getSysUserByLoginName(loginName);
//
// if(user == null){
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
// .setErrorCode(ImppExceptionEnum.LOGIN_USER_NAME_EXCEPTION.getCode())
// .setErrorDetail("用户名不存在")
// .setErrorSolution("请重新输入用户名")
// .build();
// }
//
// AuthenticationToken token = null;
// switch (user.getUserTypeId()) {
// case 2:
// token = new AdminToken(loginName, password, languageCode);
// break;
// case 3:
// token = new SaAdminToken(loginName, password, languageCode);
// break;
// default:
// token = new UserToken(loginName, password, languageCode);
// break;
// }
// SessionUser sessionUser = AuthUtil.login(token);
UserToken token = new UserToken(loginName,password,languageCode);
System.out.println("=============" + token);
SessionUser sessionUser = AuthUtil.login(token);
SysUser user = this.getSysUserByLoginName(loginName);
packSessionUser(sessionUser, user, user.getUserTypeId(), languageCode);
AuthUtil.setSessionUser(sessionUser);

Loading…
Cancel
Save