|
|
@@ -42,33 +42,36 @@ public class SSOInterceptor extends HandlerInterceptorAdapter implements Filter
|
|
|
}
|
|
|
|
|
|
private final boolean authenticate(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
|
- Cookie[] cookies = request.getCookies();
|
|
|
- List<Cookie> cookieList = new ArrayList<>();
|
|
|
- if (null != cookies) {
|
|
|
- cookieList = Arrays.asList(cookies);
|
|
|
- }
|
|
|
- final boolean[] cookieExist = {false};
|
|
|
- boolean cookieFlag = checkCookie(cookieExist, cookieList, request);
|
|
|
- if (!cookieFlag) {
|
|
|
- if (!this.onAuthenticateFailed(request, response)) {
|
|
|
- return false;
|
|
|
- } else {
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- // 通过HttpServletRequest获取登录信息
|
|
|
- logSession(request);
|
|
|
User user = SystemSession.getUser();
|
|
|
- // 未登录则要求登录
|
|
|
- if (user == null) {
|
|
|
- logoutSession(request);
|
|
|
- if (!this.onAuthenticateFailed(request, response)) {
|
|
|
- return false;
|
|
|
+ if (null == user) {
|
|
|
+ Cookie[] cookies = request.getCookies();
|
|
|
+ List<Cookie> cookieList = new ArrayList<>();
|
|
|
+ if (null != cookies) {
|
|
|
+ cookieList = Arrays.asList(cookies);
|
|
|
+ }
|
|
|
+ final boolean[] cookieExist = {false};
|
|
|
+ boolean cookieFlag = checkCookie(cookieExist, cookieList, request);
|
|
|
+ if (!cookieFlag) {
|
|
|
+ if (!this.onAuthenticateFailed(request, response)) {
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 通过HttpServletRequest获取登录信息
|
|
|
+ logSession(request);
|
|
|
+ user = SystemSession.getUser();
|
|
|
+ // 未登录则要求登录
|
|
|
+ if (user == null) {
|
|
|
+ logoutSession(request);
|
|
|
+ if (!this.onAuthenticateFailed(request, response)) {
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
} else {
|
|
|
- return true;
|
|
|
+ checkLogin(response);
|
|
|
}
|
|
|
- } else {
|
|
|
- checkLogin(response);
|
|
|
}
|
|
|
return true;
|
|
|
}
|