Bläddra i källkod

会话并发数改到页面配置中,限定1-10个之间

xusl 1 år sedan
förälder
incheckning
3a5c13c9ff

+ 1 - 3
backend/src/main/java/com/jiayue/ssi/config/WebSecurityConfig.java

@@ -51,8 +51,6 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
     JwtTokenUtil jwtTokenUtil;
     @Autowired
     SysUserService sysUserService;
-    @Value("${bfhhs}")
-    private int bfhhs;
 
     //    @Autowired
 //    XssEscapeFilter xssEscapeFilter;
@@ -98,7 +96,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
         httpSecurity.addFilterBefore(new SqlFilter(), LogoutFilter.class);
         httpSecurity.addFilterBefore(new VerifyCodeFilter(), LogoutFilter.class);
         httpSecurity.addFilterBefore(new MailCodeFilter(), LogoutFilter.class);
-        httpSecurity.addFilterBefore(new JwtAuthenticationTokenFilter(userServiceImpl, jwtTokenUtil, sysUserService,bfhhs,sysPolicyService), LogoutFilter.class);
+        httpSecurity.addFilterBefore(new JwtAuthenticationTokenFilter(userServiceImpl, jwtTokenUtil, sysUserService,sysPolicyService), LogoutFilter.class);
 //        httpSecurity.headers().frameOptions().disable();
 //        httpSecurity.headers().httpStrictTransportSecurity().includeSubDomains(true).preload(true).maxAgeInSeconds(31536000);
         httpSecurity

+ 6 - 0
backend/src/main/java/com/jiayue/ssi/controller/SysPolicyController.java

@@ -64,6 +64,12 @@ public class SysPolicyController {
                 return ResponseVO.fail("登录失败次数限制请输入1-10整数");
             }
 
+            if (sysPolicy.getBfhhs() == null) {
+                return ResponseVO.fail("并发会话数不能为空!");
+            } else if (!String.valueOf(sysPolicy.getBfhhs()).matches("^([1-9]|10)$")) {
+                return ResponseVO.fail("并发会话数请输入1-10整数");
+            }
+
             if (StringUtils.isEmpty(sysPolicy.getPasswordRule())){
                 return ResponseVO.fail("密码规则不能为空!");
             } else if (sysPolicy.getPasswordRule().split(",").length<3) {

+ 4 - 0
backend/src/main/java/com/jiayue/ssi/entity/SysPolicy.java

@@ -32,6 +32,10 @@ public class SysPolicy extends BaseEntity{
      */
     private Integer scanAccount;
     /**
+     * 并发会话数设置(单位:个)
+     */
+    private Integer bfhhs;
+    /**
      * 非活动状态时登出系统(单位:分钟)
      */
     private Integer inactiveLogout;

+ 3 - 4
backend/src/main/java/com/jiayue/ssi/filter/JwtAuthenticationTokenFilter.java

@@ -50,14 +50,12 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
     JwtTokenUtil jwtTokenUtil;
     SysUserService sysUserService;
     SysPolicyService sysPolicyService;
-    int bfhhs;
 
-    public JwtAuthenticationTokenFilter(UserServiceImpl userServiceImpl, JwtTokenUtil jwtTokenUtil,SysUserService sysUserService,int bfhhs,SysPolicyService sysPolicyService) {
+    public JwtAuthenticationTokenFilter(UserServiceImpl userServiceImpl, JwtTokenUtil jwtTokenUtil,SysUserService sysUserService,SysPolicyService sysPolicyService) {
         this.userServiceImpl = userServiceImpl;
         this.jwtTokenUtil = jwtTokenUtil;
         this.sysUserService = sysUserService;
         this.sysPolicyService = sysPolicyService;
-        this.bfhhs = bfhhs;
     }
 
     @Override
@@ -189,7 +187,8 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
         } else {
             if ("POST".equalsIgnoreCase(request.getMethod()) && defaultFilterProcessUrl.equals(request.getServletPath())) {
                 // 判断并发会话数是否满足
-                if (LoginConstants.sessionMap.size()+1>bfhhs){
+                SysPolicy sysPolicy = sysPolicyService.getOne(new QueryWrapper<>());
+                if (LoginConstants.sessionMap.size()+1>sysPolicy.getBfhhs()){
                     ResponseInfo.doResponse(response, "系统会话数已满,不能登录!", 401);
                     return;
                 }