Commit 10f69ae4 by 罗承锋

优化垂直鉴权

parent 566d6c01
...@@ -15,6 +15,7 @@ import com.winsun.tenpay.util.StringUtil; ...@@ -15,6 +15,7 @@ import com.winsun.tenpay.util.StringUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
...@@ -23,6 +24,7 @@ import javax.servlet.http.HttpServletRequest; ...@@ -23,6 +24,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit;
/** /**
* @author chengfengluo * @author chengfengluo
...@@ -33,6 +35,13 @@ import java.util.Map; ...@@ -33,6 +35,13 @@ import java.util.Map;
public class AuthIntercept extends HandlerInterceptorAdapter { public class AuthIntercept extends HandlerInterceptorAdapter {
@Autowired @Autowired
private StringRedisTemplate stringRedisTemplate;
private final static String AUTH_REDIS_PREFIX = "authRedis:";
private final static Integer CACHE_TIME = 60;
@Autowired
private SysUserMapper sysUserMapper; private SysUserMapper sysUserMapper;
@Override @Override
...@@ -63,7 +72,19 @@ public class AuthIntercept extends HandlerInterceptorAdapter { ...@@ -63,7 +72,19 @@ public class AuthIntercept extends HandlerInterceptorAdapter {
return false; return false;
} }
String data = stringResponseData.getData(); String data = stringResponseData.getData();
List<Menu> roleMenu = sysUserMapper.getRoleMenu(roleList); String s = stringRedisTemplate.opsForValue().get(AUTH_REDIS_PREFIX + user.getRoleId());
List<Menu> roleMenu = null;
if (StringUtils.isNotBlank(s)) {
roleMenu = JSONObject.parseArray(s, Menu.class);
}else {
roleMenu = sysUserMapper.getRoleMenu(roleList);
stringRedisTemplate.opsForValue().set(AUTH_REDIS_PREFIX + user.getRoleId(),
JSONObject.toJSONString(roleMenu),
CACHE_TIME, TimeUnit.SECONDS);
}
if (roleMenu == null || roleMenu.isEmpty()) {
return false;
}
log.info("data: {}", data); log.info("data: {}", data);
for (Menu menu : roleMenu) { for (Menu menu : roleMenu) {
log.info(menu.getUrl()); log.info(menu.getUrl());
......
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