|
|
@@ -3,6 +3,8 @@ package com.uas.kanban.filter;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
|
|
@@ -20,14 +22,32 @@ import com.uas.kanban.support.SystemSession;
|
|
|
@Component
|
|
|
public class SecurityInterceptor extends HandlerInterceptorAdapter {
|
|
|
|
|
|
+ private Logger logger = LoggerFactory.getLogger(getClass());
|
|
|
+
|
|
|
@Autowired
|
|
|
private SessionHelper sessionHelper;
|
|
|
|
|
|
@Override
|
|
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
|
|
|
throws Exception {
|
|
|
+ String requestURI = request.getRequestURI();
|
|
|
+ String contextPath = request.getContextPath();
|
|
|
+ // 获取(去除 context path 后的)请求的路径
|
|
|
+ String url = requestURI.substring(contextPath.length());
|
|
|
ResourcePoint resourcePoint = sessionHelper.readSession(request);
|
|
|
+
|
|
|
+ // 请求页面为 /login的话,特殊处理
|
|
|
+ if (url.equals("/login")) {
|
|
|
+ // session 中有登陆信息,重定向到首页
|
|
|
+ if (resourcePoint != null) {
|
|
|
+ response.sendRedirect("");
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ // session 中不存在登陆信息
|
|
|
if (resourcePoint == null) {
|
|
|
+ logger.info("No session for path: " + url + " , redirecting to page: login...");
|
|
|
response.sendRedirect("login");
|
|
|
return false;
|
|
|
}
|