shiro优化
parent
537e5791c5
commit
d9ea77507f
@ -1,15 +0,0 @@
|
|||||||
package cn.estsh.i3plus.core.api.token;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description : 管理员token
|
|
||||||
* @Reference :
|
|
||||||
* @Author : alwaysfrin
|
|
||||||
* @CreateDate : 2018-10-13 18:00
|
|
||||||
* @Modify:
|
|
||||||
**/
|
|
||||||
public class AdminToken extends BaseToken {
|
|
||||||
|
|
||||||
public AdminToken(String loginName, String loginPwd, String languageCode) {
|
|
||||||
super(loginName, loginPwd, languageCode);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,59 +0,0 @@
|
|||||||
package cn.estsh.i3plus.core.api.token;
|
|
||||||
|
|
||||||
import org.apache.shiro.authc.AuthenticationToken;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description : 基本验证类
|
|
||||||
* @Reference :
|
|
||||||
* @Author : alwaysfrin
|
|
||||||
* @CreateDate : 2018-10-13 18:00
|
|
||||||
* @Modify:
|
|
||||||
**/
|
|
||||||
public class BaseToken implements AuthenticationToken {
|
|
||||||
|
|
||||||
private String loginName;
|
|
||||||
private String loginPwd;
|
|
||||||
private String languageCode;
|
|
||||||
|
|
||||||
public BaseToken(String loginName, String loginPwd, String languageCode) {
|
|
||||||
this.loginName = loginName;
|
|
||||||
this.loginPwd = loginPwd;
|
|
||||||
this.languageCode = languageCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
//身份
|
|
||||||
@Override
|
|
||||||
public Object getPrincipal() {
|
|
||||||
return this.loginName;
|
|
||||||
}
|
|
||||||
|
|
||||||
//验证
|
|
||||||
@Override
|
|
||||||
public Object getCredentials() {
|
|
||||||
return this.loginPwd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLoginName() {
|
|
||||||
return loginName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLoginName(String loginName) {
|
|
||||||
this.loginName = loginName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLoginPwd() {
|
|
||||||
return loginPwd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLoginPwd(String loginPwd) {
|
|
||||||
this.loginPwd = loginPwd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLanguageCode() {
|
|
||||||
return languageCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLanguageCode(String languageCode) {
|
|
||||||
this.languageCode = languageCode;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package cn.estsh.i3plus.core.api.token;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description : 超级管理员token
|
|
||||||
* @Reference :
|
|
||||||
* @Author : alwaysfrin
|
|
||||||
* @CreateDate : 2018-10-13 18:00
|
|
||||||
* @Modify:
|
|
||||||
**/
|
|
||||||
public class SaAdminToken extends BaseToken {
|
|
||||||
|
|
||||||
public SaAdminToken(String loginName, String loginPwd, String languageCode) {
|
|
||||||
super(loginName, loginPwd, languageCode);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
package cn.estsh.i3plus.core.api.token;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description : 普通用户token
|
|
||||||
* @Reference :
|
|
||||||
* @Author : alwaysfrin
|
|
||||||
* @CreateDate : 2018-10-13 18:00
|
|
||||||
* @Modify:
|
|
||||||
**/
|
|
||||||
public class UserToken extends BaseToken {
|
|
||||||
|
|
||||||
public UserToken(String loginName, String loginPwd, String languageCode) {
|
|
||||||
super(loginName, loginPwd, languageCode);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,71 +0,0 @@
|
|||||||
package cn.estsh.i3plus.core.apiservice.auth.filter;
|
|
||||||
|
|
||||||
import cn.estsh.i3plus.core.apiservice.auth.AuthUtil;
|
|
||||||
import cn.estsh.i3plus.core.apiservice.configuration.ShiroAuthConfiguration;
|
|
||||||
import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
|
|
||||||
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
|
|
||||||
import cn.estsh.i3plus.pojo.model.busi.ResultBean;
|
|
||||||
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import org.apache.shiro.web.filter.AccessControlFilter;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import javax.servlet.ServletRequest;
|
|
||||||
import javax.servlet.ServletResponse;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description : 管理员授权路径过滤
|
|
||||||
* @Reference :
|
|
||||||
* @Author : alwaysfrin
|
|
||||||
* @CreateDate : 2018-10-13 19:17
|
|
||||||
* @Modify:
|
|
||||||
**/
|
|
||||||
public class AdminFilter extends AccessControlFilter {
|
|
||||||
public static final Logger LOGGER = LoggerFactory.getLogger(AdminFilter.class);
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception {
|
|
||||||
SessionUser sessionUser = AuthUtil.getSessionUser();
|
|
||||||
if(sessionUser != null && CommonEnumUtil.USER_TYPE.ADMIN.getCode().equals(sessionUser.getUserType())){
|
|
||||||
return true;
|
|
||||||
}else{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
|
|
||||||
if (response instanceof HttpServletResponse) {
|
|
||||||
HttpServletResponse httpServletResponse = (HttpServletResponse)response;
|
|
||||||
|
|
||||||
httpServletResponse.setHeader("Content-Type", "application/json;charset=UTF-8");
|
|
||||||
httpServletResponse.setContentType("application/json;charset=UTF-8");
|
|
||||||
PrintWriter out = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
ResultBean result = new ResultBean();
|
|
||||||
result.setSuccess(false);
|
|
||||||
result.setErrorMsg("未登录");
|
|
||||||
result.setCode("need-login");
|
|
||||||
result.setUrl(ShiroAuthConfiguration.ADMIN_LOGIN_URI);
|
|
||||||
|
|
||||||
out = response.getWriter();
|
|
||||||
out.print(JSONObject.toJSONString(result));
|
|
||||||
out.flush();
|
|
||||||
} catch (IOException var11) {
|
|
||||||
LOGGER.error(var11.getMessage(), var11);
|
|
||||||
} finally {
|
|
||||||
if (out != null) {
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,71 +0,0 @@
|
|||||||
package cn.estsh.i3plus.core.apiservice.auth.filter;
|
|
||||||
|
|
||||||
import cn.estsh.i3plus.core.apiservice.auth.AuthUtil;
|
|
||||||
import cn.estsh.i3plus.core.apiservice.configuration.ShiroAuthConfiguration;
|
|
||||||
import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
|
|
||||||
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
|
|
||||||
import cn.estsh.i3plus.pojo.model.busi.ResultBean;
|
|
||||||
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import org.apache.shiro.web.filter.AccessControlFilter;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import javax.servlet.ServletRequest;
|
|
||||||
import javax.servlet.ServletResponse;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description : 超级管理员授权路径过滤
|
|
||||||
* @Reference :
|
|
||||||
* @Author : alwaysfrin
|
|
||||||
* @CreateDate : 2018-10-13 19:17
|
|
||||||
* @Modify:
|
|
||||||
**/
|
|
||||||
public class SaAdminFilter extends AccessControlFilter {
|
|
||||||
public static final Logger LOGGER = LoggerFactory.getLogger(SaAdminFilter.class);
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception {
|
|
||||||
SessionUser sessionUser = AuthUtil.getSessionUser();
|
|
||||||
if(sessionUser != null && CommonEnumUtil.USER_TYPE.SA.getCode().equals(sessionUser.getUserType())){
|
|
||||||
return true;
|
|
||||||
}else{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
|
|
||||||
if (response instanceof HttpServletResponse) {
|
|
||||||
HttpServletResponse httpServletResponse = (HttpServletResponse)response;
|
|
||||||
|
|
||||||
httpServletResponse.setHeader("Content-Type", "application/json;charset=UTF-8");
|
|
||||||
httpServletResponse.setContentType("application/json;charset=UTF-8");
|
|
||||||
PrintWriter out = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
ResultBean result = new ResultBean();
|
|
||||||
result.setSuccess(false);
|
|
||||||
result.setErrorMsg("未登录");
|
|
||||||
result.setCode("need-login");
|
|
||||||
result.setUrl(ShiroAuthConfiguration.SAADMIN_LOGIN_URI);
|
|
||||||
|
|
||||||
out = response.getWriter();
|
|
||||||
out.print(JSONObject.toJSONString(result));
|
|
||||||
out.flush();
|
|
||||||
} catch (IOException var11) {
|
|
||||||
LOGGER.error(var11.getMessage(), var11);
|
|
||||||
} finally {
|
|
||||||
if (out != null) {
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,75 +0,0 @@
|
|||||||
package cn.estsh.i3plus.core.apiservice.auth.filter;
|
|
||||||
|
|
||||||
import cn.estsh.i3plus.core.apiservice.auth.AuthUtil;
|
|
||||||
import cn.estsh.i3plus.core.apiservice.configuration.ShiroAuthConfiguration;
|
|
||||||
import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
|
|
||||||
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
|
|
||||||
import cn.estsh.i3plus.pojo.model.busi.ResultBean;
|
|
||||||
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import org.apache.shiro.web.filter.AccessControlFilter;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import javax.servlet.ServletRequest;
|
|
||||||
import javax.servlet.ServletResponse;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description : 用户授权路径过滤
|
|
||||||
* @Reference :
|
|
||||||
* @Author : alwaysfrin
|
|
||||||
* @CreateDate : 2018-10-13 19:17
|
|
||||||
* @Modify:
|
|
||||||
**/
|
|
||||||
public class UserFilter extends AccessControlFilter {
|
|
||||||
public static final Logger LOGGER = LoggerFactory.getLogger(UserFilter.class);
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean isAccessAllowed(ServletRequest servletRequest, ServletResponse response, Object mappedValue) throws Exception {
|
|
||||||
SessionUser sessionUser = AuthUtil.getSessionUser();
|
|
||||||
if (sessionUser != null) {
|
|
||||||
LOGGER.info("===用户已登陆==={}",sessionUser);
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
LOGGER.info("===用户未登陆==={}",sessionUser);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
|
|
||||||
if (response instanceof HttpServletResponse) {
|
|
||||||
LOGGER.info("===请求拒绝===请求路径:{}",((HttpServletRequest)request).getRequestURL());
|
|
||||||
HttpServletResponse httpServletResponse = (HttpServletResponse)response;
|
|
||||||
|
|
||||||
httpServletResponse.setHeader("Content-Type", "application/json;charset=UTF-8");
|
|
||||||
httpServletResponse.setContentType("application/json;charset=UTF-8");
|
|
||||||
PrintWriter out = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
ResultBean result = new ResultBean();
|
|
||||||
result.setSuccess(false);
|
|
||||||
result.setErrorMsg("未登录");
|
|
||||||
result.setCode("need-login");
|
|
||||||
result.setUrl(ShiroAuthConfiguration.USER_LOGIN_URI);
|
|
||||||
|
|
||||||
out = response.getWriter();
|
|
||||||
out.print(JSONObject.toJSONString(result));
|
|
||||||
out.flush();
|
|
||||||
} catch (IOException var11) {
|
|
||||||
LOGGER.error(var11.getMessage(), var11);
|
|
||||||
} finally {
|
|
||||||
if (out != null) {
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,35 +1,31 @@
|
|||||||
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
|
package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
|
||||||
|
|
||||||
import cn.estsh.i3plus.core.api.iservice.busi.ISystemUserService;
|
import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService;
|
||||||
import cn.estsh.i3plus.core.api.token.AdminToken;
|
|
||||||
import cn.estsh.i3plus.core.api.token.SaAdminToken;
|
|
||||||
import cn.estsh.i3plus.core.api.token.UserToken;
|
|
||||||
import cn.estsh.i3plus.core.apiservice.auth.AuthUtil;
|
|
||||||
import cn.estsh.i3plus.core.apiservice.controller.DemoAuthController;
|
|
||||||
import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
|
import cn.estsh.i3plus.platform.common.enumutil.CommonEnumUtil;
|
||||||
|
import cn.estsh.i3plus.pojo.base.shirotoken.AdminToken;
|
||||||
|
import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken;
|
||||||
|
import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
|
||||||
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
|
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
|
||||||
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
|
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
|
||||||
import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository;
|
import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository;
|
||||||
|
import cn.estsh.impp.framework.boot.auth.AuthUtil;
|
||||||
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
||||||
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
|
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.websocket.Session;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description : 用户系统方法
|
* @Description : 用户登陆方法
|
||||||
* @Reference :
|
* @Reference :
|
||||||
* @Author : alwaysfrin
|
* @Author : alwaysfrin
|
||||||
* @CreateDate : 2018-10-13 17:18
|
* @CreateDate : 2018-10-13 17:18
|
||||||
* @Modify:
|
* @Modify:
|
||||||
**/
|
**/
|
||||||
@Service
|
@Service
|
||||||
public class SystemUserService implements ISystemUserService {
|
public class SystemLoginService implements ISystemLoginService {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(SystemUserService.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(SystemLoginService.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysUserRepository sysUserRDao;
|
private SysUserRepository sysUserRDao;
|
Loading…
Reference in New Issue