Commit 70a9c4d1 authored by 赵啸非's avatar 赵啸非

添加资源自动刷新获取

parent 11274a1d
...@@ -4,14 +4,19 @@ import com.alibaba.druid.support.http.ResourceServlet; ...@@ -4,14 +4,19 @@ import com.alibaba.druid.support.http.ResourceServlet;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth; import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.service.IAuthTokenService; import com.mortals.framework.service.IAuthTokenService;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.IUser; import com.mortals.framework.service.IUser;
import com.mortals.framework.util.AESUtil; import com.mortals.framework.util.AESUtil;
import com.mortals.framework.utils.ServletUtils; import com.mortals.framework.utils.ServletUtils;
import com.mortals.framework.web.interceptor.BaseInterceptor; import com.mortals.framework.web.interceptor.BaseInterceptor;
import com.mortals.xhx.base.framework.config.InterceptorConfig; import com.mortals.xhx.base.framework.config.InterceptorConfig;
import com.mortals.xhx.base.system.resource.service.ResourceService;
import com.mortals.xhx.common.key.RedisKey;
import com.mortals.xhx.common.utils.MenuEncodeUtil;
import com.mortals.xhx.module.user.model.UserEntity; import com.mortals.xhx.module.user.model.UserEntity;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.ParameterResolutionDelegate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.web.method.HandlerMethod; import org.springframework.web.method.HandlerMethod;
...@@ -20,6 +25,7 @@ import org.springframework.web.servlet.resource.ResourceHttpRequestHandler; ...@@ -20,6 +25,7 @@ import org.springframework.web.servlet.resource.ResourceHttpRequestHandler;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Set;
/** /**
* 用户权限验证,基于token * 用户权限验证,基于token
...@@ -34,6 +40,10 @@ public class AuthUserInterceptor extends BaseInterceptor { ...@@ -34,6 +40,10 @@ public class AuthUserInterceptor extends BaseInterceptor {
private InterceptorConfig config; private InterceptorConfig config;
@Autowired @Autowired
private IAuthTokenService authTokenService; private IAuthTokenService authTokenService;
@Autowired
private ICacheService cacheService;
@Autowired
private ResourceService resourceService;
@Override @Override
public int getOrder() { public int getOrder() {
...@@ -45,7 +55,7 @@ public class AuthUserInterceptor extends BaseInterceptor { ...@@ -45,7 +55,7 @@ public class AuthUserInterceptor extends BaseInterceptor {
throws Exception { throws Exception {
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
try { try {
if(handler instanceof HandlerMethod){ if (handler instanceof HandlerMethod) {
HandlerMethod handlerMethod = (HandlerMethod) handler; HandlerMethod handlerMethod = (HandlerMethod) handler;
Method method = handlerMethod.getMethod(); Method method = handlerMethod.getMethod();
UnAuth annotation = method.getAnnotation(UnAuth.class); UnAuth annotation = method.getAnnotation(UnAuth.class);
...@@ -53,7 +63,7 @@ public class AuthUserInterceptor extends BaseInterceptor { ...@@ -53,7 +63,7 @@ public class AuthUserInterceptor extends BaseInterceptor {
//取消校验 //取消校验
return true; return true;
} }
}else if(handler instanceof ResourceHttpRequestHandler){ } else if (handler instanceof ResourceHttpRequestHandler) {
return true; return true;
} }
String uri = request.getServletPath(); String uri = request.getServletPath();
...@@ -64,13 +74,13 @@ public class AuthUserInterceptor extends BaseInterceptor { ...@@ -64,13 +74,13 @@ public class AuthUserInterceptor extends BaseInterceptor {
if (!auth) { if (!auth) {
//不存在时候 如果是管理员也不做拦截 //不存在时候 如果是管理员也不做拦截
IUser loginUser = authTokenService.getLoginUser(request); IUser loginUser = authTokenService.getLoginUser(request);
if(ObjectUtils.isEmpty(loginUser)){ if (ObjectUtils.isEmpty(loginUser)) {
ret.put("code", 401); ret.put("code", 401);
ret.put("msg", "用户未登录或登录失效,请重新登录"); ret.put("msg", "用户未登录或登录失效,请重新登录");
ServletUtils.renderString(response, JSONObject.toJSONString(ret)); ServletUtils.renderString(response, JSONObject.toJSONString(ret));
return false; return false;
// }else if(loginUser.isAdmin()||loginUser.getUserType()==1){ // }else if(loginUser.isAdmin()||loginUser.getUserType()==1){
}else if(loginUser.isAdmin()){ } else if (loginUser.isAdmin()) {
return super.preHandle(request, response, handler); return super.preHandle(request, response, handler);
} else { } else {
ret.put("code", -1); ret.put("code", -1);
...@@ -81,7 +91,7 @@ public class AuthUserInterceptor extends BaseInterceptor { ...@@ -81,7 +91,7 @@ public class AuthUserInterceptor extends BaseInterceptor {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("权限校验拦截请求处理异常-->" + e.getMessage(),e); log.error("权限校验拦截请求处理异常-->" + e.getMessage(), e);
writeJsonResponse(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "用户权限校验异常"); writeJsonResponse(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "用户权限校验异常");
return false; return false;
} }
...@@ -91,9 +101,16 @@ public class AuthUserInterceptor extends BaseInterceptor { ...@@ -91,9 +101,16 @@ public class AuthUserInterceptor extends BaseInterceptor {
private boolean checkAuth(HttpServletRequest request, String requestUrl, String securityKey) throws Exception { private boolean checkAuth(HttpServletRequest request, String requestUrl, String securityKey) throws Exception {
int code = requestUrl.hashCode() & (Integer.MAX_VALUE - 1); int code = requestUrl.hashCode() & (Integer.MAX_VALUE - 1);
IUser loginUser = authTokenService.getLoginUser(request); IUser loginUser = authTokenService.getLoginUser(request);
if (ObjectUtils.isEmpty(loginUser)) return false; if (ObjectUtils.isEmpty(loginUser)) return false;
String menuUrl = loginUser.getMenuUrl();
String menuUrl = cacheService.hget(RedisKey.KEY_USER_MENU_CACHE, loginUser.getId().toString(), String.class);
if (ObjectUtils.isEmpty(menuUrl)) {
Set<String> urls = resourceService.findUrlSetByUserId(loginUser.getId());
menuUrl = MenuEncodeUtil.generateMenuUrlCode(urls);
cacheService.hset(RedisKey.KEY_USER_MENU_CACHE, loginUser.getId().toString(), menuUrl);
}
//String menuUrl = loginUser.getMenuUrl();
if (ObjectUtils.isEmpty(menuUrl)) return false; if (ObjectUtils.isEmpty(menuUrl)) return false;
menuUrl = AESUtil.decrypt(menuUrl, securityKey); menuUrl = AESUtil.decrypt(menuUrl, securityKey);
String codes = "," + menuUrl + ","; String codes = "," + menuUrl + ",";
...@@ -105,5 +122,4 @@ public class AuthUserInterceptor extends BaseInterceptor { ...@@ -105,5 +122,4 @@ public class AuthUserInterceptor extends BaseInterceptor {
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment