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

添加资源自动刷新获取

parent 11274a1d
......@@ -4,14 +4,19 @@ import com.alibaba.druid.support.http.ResourceServlet;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.service.IAuthTokenService;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.IUser;
import com.mortals.framework.util.AESUtil;
import com.mortals.framework.utils.ServletUtils;
import com.mortals.framework.web.interceptor.BaseInterceptor;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.ParameterResolutionDelegate;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.springframework.web.method.HandlerMethod;
......@@ -20,6 +25,7 @@ import org.springframework.web.servlet.resource.ResourceHttpRequestHandler;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.Set;
/**
* 用户权限验证,基于token
......@@ -34,6 +40,10 @@ public class AuthUserInterceptor extends BaseInterceptor {
private InterceptorConfig config;
@Autowired
private IAuthTokenService authTokenService;
@Autowired
private ICacheService cacheService;
@Autowired
private ResourceService resourceService;
@Override
public int getOrder() {
......@@ -45,7 +55,7 @@ public class AuthUserInterceptor extends BaseInterceptor {
throws Exception {
JSONObject ret = new JSONObject();
try {
if(handler instanceof HandlerMethod){
if (handler instanceof HandlerMethod) {
HandlerMethod handlerMethod = (HandlerMethod) handler;
Method method = handlerMethod.getMethod();
UnAuth annotation = method.getAnnotation(UnAuth.class);
......@@ -53,7 +63,7 @@ public class AuthUserInterceptor extends BaseInterceptor {
//取消校验
return true;
}
}else if(handler instanceof ResourceHttpRequestHandler){
} else if (handler instanceof ResourceHttpRequestHandler) {
return true;
}
String uri = request.getServletPath();
......@@ -64,13 +74,13 @@ public class AuthUserInterceptor extends BaseInterceptor {
if (!auth) {
//不存在时候 如果是管理员也不做拦截
IUser loginUser = authTokenService.getLoginUser(request);
if(ObjectUtils.isEmpty(loginUser)){
if (ObjectUtils.isEmpty(loginUser)) {
ret.put("code", 401);
ret.put("msg", "用户未登录或登录失效,请重新登录");
ServletUtils.renderString(response, JSONObject.toJSONString(ret));
return false;
// }else if(loginUser.isAdmin()||loginUser.getUserType()==1){
}else if(loginUser.isAdmin()){
} else if (loginUser.isAdmin()) {
return super.preHandle(request, response, handler);
} else {
ret.put("code", -1);
......@@ -81,7 +91,7 @@ public class AuthUserInterceptor extends BaseInterceptor {
}
}
} catch (Exception e) {
log.error("权限校验拦截请求处理异常-->" + e.getMessage(),e);
log.error("权限校验拦截请求处理异常-->" + e.getMessage(), e);
writeJsonResponse(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "用户权限校验异常");
return false;
}
......@@ -93,7 +103,14 @@ public class AuthUserInterceptor extends BaseInterceptor {
int code = requestUrl.hashCode() & (Integer.MAX_VALUE - 1);
IUser loginUser = authTokenService.getLoginUser(request);
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;
menuUrl = AESUtil.decrypt(menuUrl, securityKey);
String codes = "," + menuUrl + ",";
......@@ -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