Commit a06d8e69 by niewei

esb修改get

parent edb58cec
...@@ -11,9 +11,12 @@ import com.brilliance.isc.vo.manager.SessionUserVo; ...@@ -11,9 +11,12 @@ import com.brilliance.isc.vo.manager.SessionUserVo;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter; import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.core.Context; import javax.ws.rs.core.Context;
...@@ -22,15 +25,10 @@ import java.io.IOException; ...@@ -22,15 +25,10 @@ import java.io.IOException;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class ISCRequestPreFilter implements ContainerRequestFilter { public class ISCRequestPreFilter implements HandlerInterceptor {
Logger logger = LoggerFactory.getLogger(ISCRequestPreFilter.class); Logger logger = LoggerFactory.getLogger(ISCRequestPreFilter.class);
@Context
protected HttpServletRequest request;
@Context
protected HttpHeaders header;
@Resource @Resource
protected SettleContext settleContext; protected SettleContext settleContext;
...@@ -41,17 +39,36 @@ public class ISCRequestPreFilter implements ContainerRequestFilter { ...@@ -41,17 +39,36 @@ public class ISCRequestPreFilter implements ContainerRequestFilter {
@Resource @Resource
protected BizLocker bizLocker; protected BizLocker bizLocker;
private void clearUserLock(String requestURI,SessionUserVo sessionUserVo){
if(requestURI.indexOf("/logout") > -1){
logger.info("退出释放等钱用户锁");
bizLocker.unlockAllOfUser(sessionUserVo.getLogName());
logger.info("Filter中锁释放完毕");
}
}
/**
* 避免因为异常导致ThreadLocal未被清理
*/
private void clearCache(){
SettleContext.removeUserSession();
SettleContext.removeSessionUserVo();
BchServiceImpl.removeBranchCacheMap();
BchServiceImpl.removeBchInrCacheMap();
}
@Override @Override
public void filter(ContainerRequestContext requestContext) throws IOException { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
clearCache(); clearCache();
String requestURI = request.getRequestURI(); String requestURI = request.getRequestURI();
logger.info("本次请求的url["+requestURI+"]"); logger.info("本次请求的url["+requestURI+"]");
if (requestURI.contains("login/verify") || requestURI.contains("login/changeRole") || requestURI.contains("login/changeOrg")){ if (requestURI.contains("login/verify") || requestURI.contains("login/changeRole") || requestURI.contains("login/changeOrg")){
return; return true;
} }
// //
String token = requestContext.getHeaderString("token"); String token = request.getHeader("token");
Long currentExpireTime = redisTemplate.getExpire(token); Long currentExpireTime = redisTemplate.getExpire(token);
//判断token是否失效,失效则抛异常 //判断token是否失效,失效则抛异常
if(token == null || token.isEmpty() || currentExpireTime<=0){ if(token == null || token.isEmpty() || currentExpireTime<=0){
...@@ -75,23 +92,18 @@ public class ISCRequestPreFilter implements ContainerRequestFilter { ...@@ -75,23 +92,18 @@ public class ISCRequestPreFilter implements ContainerRequestFilter {
//没失效则刷新redis的过期时间(120分钟) //没失效则刷新redis的过期时间(120分钟)
redisTemplate.expire(token,120, TimeUnit.MINUTES); redisTemplate.expire(token,120, TimeUnit.MINUTES);
logger.info("将用户的部分信息存入sessionUserVo中"); logger.info("将用户的部分信息存入sessionUserVo中");
return true;
} }
private void clearUserLock(String requestURI,SessionUserVo sessionUserVo){ @Override
if(requestURI.indexOf("/logout") > -1){ public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
logger.info("退出释放等钱用户锁"); System.out.println("postHandle: " + request.getRequestURI());
bizLocker.unlockAllOfUser(sessionUserVo.getLogName());
logger.info("Filter中锁释放完毕");
}
} }
/** @Override
* 避免因为异常导致ThreadLocal未被清理 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
*/ System.out.println("afterCompletion: " + request.getRequestURI());
private void clearCache(){
SettleContext.removeUserSession();
SettleContext.removeSessionUserVo();
BchServiceImpl.removeBranchCacheMap();
BchServiceImpl.removeBchInrCacheMap();
} }
} }
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