Commit 10f69ae4 by 罗承锋

优化垂直鉴权

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