From f47aaef85c87984ec8d418d3f909bfa404c47855 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 10 四月 2024 14:06:53 +0800
Subject: [PATCH] #地图载入
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java | 226 ++++++++++++++++++++++++++++----------------------------
1 files changed, 114 insertions(+), 112 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java
index 3673b38..1b4c185 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/security/JwtAuthenticationFilter.java
@@ -1,112 +1,114 @@
-//package com.zy.asrs.wcs.common.security;
-//
-//import com.core.common.Cools;
-//import com.zy.acs.manager.common.config.ConfigProperties;
-//import com.zy.acs.manager.common.constant.Constants;
-//import com.zy.acs.manager.common.utils.CommonUtil;
-//import com.zy.acs.manager.common.utils.JwtUtil;
-//import com.zy.acs.manager.system.entity.LoginRecord;
-//import com.zy.acs.manager.system.entity.Menu;
-//import com.zy.acs.manager.system.entity.User;
-//import com.zy.acs.manager.system.service.LoginRecordService;
-//import com.zy.acs.manager.system.service.UserService;
-//import io.jsonwebtoken.Claims;
-//import io.jsonwebtoken.ExpiredJwtException;
-//import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-//import org.springframework.security.core.context.SecurityContextHolder;
-//import org.springframework.security.core.userdetails.UsernameNotFoundException;
-//import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
-//import org.springframework.stereotype.Component;
-//import org.springframework.web.filter.OncePerRequestFilter;
-//
-//import javax.annotation.Resource;
-//import javax.servlet.FilterChain;
-//import javax.servlet.ServletException;
-//import javax.servlet.http.HttpServletRequest;
-//import javax.servlet.http.HttpServletResponse;
-//import java.io.IOException;
-//import java.util.ArrayList;
-//import java.util.Date;
-//import java.util.List;
-//import java.util.stream.Collectors;
-//
-///**
-// * 澶勭悊鎼哄甫token鐨勮姹傝繃婊ゅ櫒
-// *
-// */
-//@Component
-//public class JwtAuthenticationFilter extends OncePerRequestFilter {
-//
-// public static final ArrayList<String> WHITE_KEY = new ArrayList<String>(){
-// private static final long serialVersionUID = 1L;
-// {
-// add("xltys1995");
-// }
-// };
-//
-// @Resource
-// private ConfigProperties configProperties;
-// @Resource
-// private UserService userService;
-// @Resource
-// private LoginRecordService loginRecordService;
-//
-// @Override
-// protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
-// String access_token = JwtUtil.getAccessToken(request);
-// for (String filterPath : SecurityConfig.FILTER_PATH) {
-// AntPathRequestMatcher antPathMatcher = new AntPathRequestMatcher(filterPath);
-// if (antPathMatcher.matches(request)) {
-// access_token = "";
-// }
-// }
-// if (!Cools.isEmpty(access_token)) {
-// try {
-// User user;
-// if (WHITE_KEY.contains(access_token)) {
-// user = userService.getByUsername("openapi", 2);
-// if (user == null) {
-// throw new UsernameNotFoundException("Username not found");
-// }
-// List<Menu> authorities = user.getAuthorities().stream()
-// .filter(m -> !Cools.isEmpty(m.getAuthority())).collect(Collectors.toList());
-// UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
-// user, null, authorities);
-// SecurityContextHolder.getContext().setAuthentication(authentication);
-// } else {
-// // 瑙f瀽token
-// Claims claims = JwtUtil.parseToken(access_token, configProperties.getTokenKey());
-// JwtSubject jwtSubject = JwtUtil.getJwtSubject(claims);
-// user = userService.getByUsername(jwtSubject.getUsername(), jwtSubject.getTenantId());
-// if (user == null) {
-// throw new UsernameNotFoundException("Username not found");
-// }
-// List<Menu> authorities = user.getAuthorities().stream()
-// .filter(m -> !Cools.isEmpty(m.getAuthority())).collect(Collectors.toList());
-// UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
-// user, null, authorities);
-// SecurityContextHolder.getContext().setAuthentication(authentication);
-// // token灏嗚杩囨湡绛惧彂鏂皌oken, 闃叉绐佺劧閫�鍑虹櫥褰�
-// long expiration = (claims.getExpiration().getTime() - new Date().getTime()) / 1000 / 60;
-// if (expiration < configProperties.getTokenRefreshTime()) {
-// String token = JwtUtil.buildToken(jwtSubject, configProperties.getTokenExpireTime(),
-// configProperties.getTokenKey());
-// response.addHeader(Constants.TOKEN_HEADER_NAME, token);
-// loginRecordService.saveAsync(user.getUsername(), LoginRecord.TYPE_REFRESH, null,
-// user.getTenantId(), request);
-// }
-// }
-// } catch (ExpiredJwtException e) {
-// CommonUtil.responseError(response, Constants.TOKEN_EXPIRED_CODE, Constants.TOKEN_EXPIRED_MSG,
-// e.getMessage());
-// return;
-// } catch (Exception e) {
-// CommonUtil.responseError(response, Constants.BAD_CREDENTIALS_CODE, Constants.BAD_CREDENTIALS_MSG,
-// e.toString());
-// return;
-// }
-// }
-// chain.doFilter(request, response);
-// }
-//
-//}
+package com.zy.asrs.wcs.common.security;
+
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.wcs.common.config.ConfigProperties;
+import com.zy.asrs.wcs.common.constant.Constants;
+import com.zy.asrs.wcs.system.entity.Menu;
+import com.zy.asrs.wcs.system.entity.User;
+import com.zy.asrs.wcs.system.entity.UserLogin;
+import com.zy.asrs.wcs.system.service.UserLoginService;
+import com.zy.asrs.wcs.system.service.UserService;
+import com.zy.asrs.wcs.utils.HttpUtils;
+import com.zy.asrs.wcs.utils.JwtUtil;
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.ExpiredJwtException;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
+import org.springframework.stereotype.Component;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import javax.annotation.Resource;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 澶勭悊鎼哄甫token鐨勮姹傝繃婊ゅ櫒
+ *
+ */
+@Component
+public class JwtAuthenticationFilter extends OncePerRequestFilter {
+
+ public static final ArrayList<String> WHITE_LIST = new ArrayList<String>(){
+ private static final long serialVersionUID = 1L;
+ {
+ add("xltys1995");
+ }
+ };
+
+ @Resource
+ private ConfigProperties configProperties;
+ @Resource
+ private UserService userService;
+ @Resource
+ private UserLoginService userLoginService;
+
+ @Override
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
+ String access_token = JwtUtil.getAccessToken(request);
+ for (String filterPath : SecurityConfig.FILTER_PATH) {
+ AntPathRequestMatcher antPathMatcher = new AntPathRequestMatcher(filterPath);
+ if (antPathMatcher.matches(request)) {
+ access_token = "";
+ }
+ }
+ if (!Cools.isEmpty(access_token)) {
+ try {
+ User user;
+ // 鐧藉悕鍗�
+ if (WHITE_LIST.contains(access_token)) {
+ user = userService.getByUsername("root", 1L);
+ if (user == null) {
+ throw new UsernameNotFoundException("Username not found");
+ }
+ List<Menu> authorities = user.getAuthorities().stream()
+ .filter(m -> !Cools.isEmpty(m.getAuthority())).collect(Collectors.toList());
+ UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
+ user, null, authorities);
+ SecurityContextHolder.getContext().setAuthentication(authentication);
+ } else {
+ // 瑙f瀽token
+ Claims claims = JwtUtil.parseToken(access_token, configProperties.getTokenKey());
+ JwtSubject jwtSubject = JwtUtil.getJwtSubject(claims);
+ user = userService.getByUsername(jwtSubject.getUsername(), jwtSubject.getHostId());
+ if (user == null) {
+ throw new UsernameNotFoundException("Username not found");
+ }
+ List<Menu> authorities = user.getAuthorities().stream()
+ .filter(m -> !Cools.isEmpty(m.getAuthority())).collect(Collectors.toList());
+ UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
+ user, null, authorities);
+ SecurityContextHolder.getContext().setAuthentication(authentication);
+ // token灏嗚杩囨湡绛惧彂鏂皌oken, 闃叉绐佺劧閫�鍑虹櫥褰�
+ long expiration = (claims.getExpiration().getTime() - new Date().getTime()) / 1000 / 60;
+ if (expiration < configProperties.getTokenRefreshTime()) {
+ String token = JwtUtil.buildToken(jwtSubject, configProperties.getTokenExpireTime(),
+ configProperties.getTokenKey());
+ response.addHeader(Constants.TOKEN_HEADER_NAME, token);
+ userLoginService.saveAsync(user.getId(), token, UserLogin.TYPE_REFRESH, user.getHostId(), null, request);
+ }
+ }
+ } catch (ExpiredJwtException e) {
+// e.printStackTrace();
+ HttpUtils.responseError(response, Constants.TOKEN_EXPIRED_CODE, Constants.TOKEN_EXPIRED_MSG,
+ e.getMessage());
+ return;
+ } catch (Exception e) {
+ e.printStackTrace();
+ HttpUtils.responseError(response, Constants.BAD_CREDENTIALS_CODE, Constants.BAD_CREDENTIALS_MSG,
+ e.toString());
+ return;
+ }
+ }
+ chain.doFilter(request, response);
+ }
+
+}
--
Gitblit v1.9.1