|
@@ -3,6 +3,7 @@ package cn.com.qmth.stmms.api.interceptor;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
+import cn.com.qmth.stmms.common.session.model.StmmsSession;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -30,6 +31,8 @@ import cn.com.qmth.stmms.common.signature.SignatureType;
|
|
|
import cn.com.qmth.stmms.common.utils.EncryptUtils;
|
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
|
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
/**
|
|
|
* API接口访问拦截器
|
|
|
*
|
|
@@ -63,6 +66,7 @@ public class ApiInterceptor extends HandlerInterceptorAdapter {
|
|
|
@Override
|
|
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
|
|
|
throws Exception {
|
|
|
+ buildSession(request);
|
|
|
HandlerMethod method = (HandlerMethod) handler;
|
|
|
return validate(request, response, method.getMethodAnnotation(RoleRequire.class));
|
|
|
}
|
|
@@ -166,4 +170,22 @@ public class ApiInterceptor extends HandlerInterceptorAdapter {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
|
|
|
+ throws Exception {
|
|
|
+ try {
|
|
|
+ sessionService.put(request, response, RequestUtils.getSession(request));
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("stmms session save faile!", e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void buildSession(HttpServletRequest request) {
|
|
|
+ StmmsSession session = sessionService.get(request);
|
|
|
+ RequestUtils.setSession(request, session);
|
|
|
+ for (Map.Entry<String, String> entry : session.getParameters()) {
|
|
|
+ request.setAttribute(entry.getKey(), entry.getValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|