Browse Source

规范代码(构造器注入,阿里编程规范等)

MrBird 6 năm trước cách đây
mục cha
commit
9f0c14ec14
100 tập tin đã thay đổi với 1015 bổ sung482 xóa
  1. 3 0
      febs-auth/src/main/java/cc/mrbird/febs/auth/FebsAuthApplication.java
  2. 10 16
      febs-auth/src/main/java/cc/mrbird/febs/auth/configure/FebsAuthorizationServerConfigure.java
  3. 5 7
      febs-auth/src/main/java/cc/mrbird/febs/auth/configure/FebsResourceServerConfigure.java
  4. 7 8
      febs-auth/src/main/java/cc/mrbird/febs/auth/configure/FebsSecurityConfigure.java
  5. 15 15
      febs-auth/src/main/java/cc/mrbird/febs/auth/controller/OauthClientDetailsController.java
  6. 4 5
      febs-auth/src/main/java/cc/mrbird/febs/auth/controller/SecurityController.java
  7. 4 3
      febs-auth/src/main/java/cc/mrbird/febs/auth/controller/SocialLoginController.java
  8. 1 1
      febs-auth/src/main/java/cc/mrbird/febs/auth/entity/OauthClientDetails.java
  9. 3 3
      febs-auth/src/main/java/cc/mrbird/febs/auth/filter/ValidateCodeFilter.java
  10. 10 11
      febs-auth/src/main/java/cc/mrbird/febs/auth/manager/UserManager.java
  11. 6 0
      febs-auth/src/main/java/cc/mrbird/febs/auth/mapper/MenuMapper.java
  12. 2 2
      febs-auth/src/main/java/cc/mrbird/febs/auth/mapper/OauthClientDetailsMapper.java
  13. 6 0
      febs-auth/src/main/java/cc/mrbird/febs/auth/mapper/UserMapper.java
  14. 3 0
      febs-auth/src/main/java/cc/mrbird/febs/auth/mapper/UserRoleMapper.java
  15. 6 3
      febs-auth/src/main/java/cc/mrbird/febs/auth/runner/StartedUpRunner.java
  16. 10 9
      febs-auth/src/main/java/cc/mrbird/febs/auth/service/OauthClientDetailsService.java
  17. 3 0
      febs-auth/src/main/java/cc/mrbird/febs/auth/service/SocialLoginService.java
  18. 3 0
      febs-auth/src/main/java/cc/mrbird/febs/auth/service/ValidateCodeService.java
  19. 55 55
      febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/FebsUserDetailServiceImpl.java
  20. 27 28
      febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/OauthClientDetailsServiceImpl.java
  21. 3 4
      febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/RedisClientDetailsService.java
  22. 15 20
      febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/SocialLoginServiceImpl.java
  23. 3 3
      febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/UserConnectionServiceImpl.java
  24. 4 5
      febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/ValidateCodeServiceImpl.java
  25. 2 2
      febs-common/src/main/java/cc/mrbird/febs/common/annotation/EnableFebsOauth2FeignClient.java
  26. 1 1
      febs-common/src/main/java/cc/mrbird/febs/common/configure/FebsOauth2FeignConfigure.java
  27. 9 1
      febs-common/src/main/java/cc/mrbird/febs/common/configure/FebsServerProtectConfigure.java
  28. 5 4
      febs-common/src/main/java/cc/mrbird/febs/common/converter/TimeConverter.java
  29. 2 0
      febs-common/src/main/java/cc/mrbird/febs/common/entity/router/RouterMeta.java
  30. 2 0
      febs-common/src/main/java/cc/mrbird/febs/common/entity/router/VueRouter.java
  31. 5 0
      febs-common/src/main/java/cc/mrbird/febs/common/entity/system/Dept.java
  32. 13 12
      febs-common/src/main/java/cc/mrbird/febs/common/entity/system/LoginLog.java
  33. 8 2
      febs-common/src/main/java/cc/mrbird/febs/common/entity/system/Menu.java
  34. 21 7
      febs-common/src/main/java/cc/mrbird/febs/common/entity/system/SystemUser.java
  35. 2 2
      febs-common/src/main/java/cc/mrbird/febs/common/selector/FebsCloudApplicationSelector.java
  36. 7 4
      febs-common/src/main/java/cc/mrbird/febs/common/service/RedisService.java
  37. 1 1
      febs-common/src/main/java/cc/mrbird/febs/common/utils/DateUtil.java
  38. 29 24
      febs-common/src/main/java/cc/mrbird/febs/common/utils/FebsUtil.java
  39. 7 3
      febs-common/src/main/java/cc/mrbird/febs/common/utils/FileUtil.java
  40. 13 9
      febs-common/src/main/java/cc/mrbird/febs/common/utils/SortUtil.java
  41. 6 3
      febs-common/src/main/java/cc/mrbird/febs/common/utils/TreeUtil.java
  42. 3 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/FebsGatewayApplication.java
  43. 2 14
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/common/configure/FebsGatewayErrorConfigure.java
  44. 4 5
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/common/filter/FebsGatewayRequestFilter.java
  45. 6 2
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/common/runner/StartedUpRunner.java
  46. 3 3
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/auth/AuthenticationManager.java
  47. 2 2
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/auth/JwtTokenHelper.java
  48. 4 6
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/auth/SecurityConfigure.java
  49. 3 3
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/auth/SecurityContextRepository.java
  50. 7 2
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/configure/FebsRouteEnhanceConfigure.java
  51. 3 3
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/BlackListController.java
  52. 3 3
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/BlockLogController.java
  53. 3 3
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/RateLimitLogController.java
  54. 3 3
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/RateLimitRuleController.java
  55. 3 3
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/RouteLogController.java
  56. 6 8
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/RouteLoginController.java
  57. 3 4
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/RouteUserController.java
  58. 24 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/BlackListMapper.java
  59. 6 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/BlockLogMapper.java
  60. 9 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/RateLimitLogMapper.java
  61. 16 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/RateLimitRuleMapper.java
  62. 6 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/RouteLogMapper.java
  63. 15 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/RouteUserMapper.java
  64. 6 7
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/runner/FebsRouteEnhanceRunner.java
  65. 47 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/BlackListService.java
  66. 28 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/BlockLogService.java
  67. 26 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RateLimitLogService.java
  68. 46 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RateLimitRuleService.java
  69. 71 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RouteEnhanceCacheService.java
  70. 27 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RouteEnhanceService.java
  71. 33 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RouteLogService.java
  72. 41 0
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RouteUserService.java
  73. 17 7
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/BlackListServiceImpl.java
  74. 9 2
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/BlockLogServiceImpl.java
  75. 9 2
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RateLimitLogServiceImpl.java
  76. 16 7
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RateLimitRuleServiceImpl.java
  77. 5 1
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RouteEnhanceCacheServiceImpl.java
  78. 29 19
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RouteEnhanceServiceImpl.java
  79. 9 2
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RouteLogServiceImpl.java
  80. 13 4
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RouteUserServiceImpl.java
  81. 2 4
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/utils/AddressUtil.java
  82. 2 1
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/utils/PageableExecutionUtil.java
  83. 3 1
      febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/utils/RouteEnhanceCacheUtil.java
  84. 3 0
      febs-monitor/febs-monitor-admin/src/main/java/cc/mrbird/febs/monitor/admin/FebsMonitorAdminApplication.java
  85. 9 2
      febs-monitor/febs-monitor-admin/src/main/java/cc/mrbird/febs/monitor/admin/runner/StartedUpRunner.java
  86. 0 0
      febs-monitor/zipkin-server/run.sh
  87. 0 0
      febs-monitor/zipkin-server/startup.md
  88. 3 0
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/FebsServerSystemApplication.java
  89. 36 36
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/aspect/BaseAspectSupport.java
  90. 4 4
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/aspect/ControllerEndpointAspect.java
  91. 5 7
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/configure/FebsServerSystemResourceServerConfigure.java
  92. 3 3
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/configure/FebsWebConfigure.java
  93. 6 3
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/DeptController.java
  94. 5 4
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/EximportController.java
  95. 5 4
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/GeneratorConfigController.java
  96. 6 8
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/GeneratorController.java
  97. 3 4
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/LogController.java
  98. 3 3
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/LoginLogController.java
  99. 4 4
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/MenuController.java
  100. 6 6
      febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/RoleController.java

+ 3 - 0
febs-auth/src/main/java/cc/mrbird/febs/auth/FebsAuthApplication.java

@@ -9,6 +9,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
 
+/**
+ * @author MrBird
+ */
 @EnableDiscoveryClient
 @EnableFebsLettuceRedis
 @EnableFebsAuthExceptionHandler

+ 10 - 16
febs-auth/src/main/java/cc/mrbird/febs/auth/configure/FebsAuthorizationServerConfigure.java

@@ -1,15 +1,15 @@
 package cc.mrbird.febs.auth.configure;
 
 import cc.mrbird.febs.auth.properties.FebsAuthProperties;
-import cc.mrbird.febs.auth.service.impl.FebsUserDetailService;
 import cc.mrbird.febs.auth.service.impl.RedisClientDetailsService;
 import cc.mrbird.febs.auth.translator.FebsWebResponseExceptionTranslator;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
 import org.springframework.data.redis.connection.RedisConnectionFactory;
 import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
 import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
@@ -35,22 +35,16 @@ import java.util.UUID;
  */
 @Configuration
 @EnableAuthorizationServer
+@RequiredArgsConstructor
 public class FebsAuthorizationServerConfigure extends AuthorizationServerConfigurerAdapter {
 
-    @Autowired
-    private AuthenticationManager authenticationManager;
-    @Autowired
-    private FebsUserDetailService userDetailService;
-    @Autowired
-    private PasswordEncoder passwordEncoder;
-    @Autowired
-    private FebsWebResponseExceptionTranslator exceptionTranslator;
-    @Autowired
-    private FebsAuthProperties properties;
-    @Autowired
-    private RedisClientDetailsService redisClientDetailsService;
-    @Autowired
-    private RedisConnectionFactory redisConnectionFactory;
+    private final AuthenticationManager authenticationManager;
+    private final UserDetailsService userDetailService;
+    private final PasswordEncoder passwordEncoder;
+    private final FebsWebResponseExceptionTranslator exceptionTranslator;
+    private final FebsAuthProperties properties;
+    private final RedisClientDetailsService redisClientDetailsService;
+    private final RedisConnectionFactory redisConnectionFactory;
 
     @Override
     public void configure(ClientDetailsServiceConfigurer clients) throws Exception {

+ 5 - 7
febs-auth/src/main/java/cc/mrbird/febs/auth/configure/FebsResourceServerConfigure.java

@@ -4,8 +4,8 @@ import cc.mrbird.febs.auth.properties.FebsAuthProperties;
 import cc.mrbird.febs.common.entity.constant.EndpointConstant;
 import cc.mrbird.febs.common.handler.FebsAccessDeniedHandler;
 import cc.mrbird.febs.common.handler.FebsAuthExceptionEntryPoint;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
@@ -19,14 +19,12 @@ import org.springframework.security.oauth2.config.annotation.web.configurers.Res
  */
 @Configuration
 @EnableResourceServer
+@RequiredArgsConstructor
 public class FebsResourceServerConfigure extends ResourceServerConfigurerAdapter {
 
-    @Autowired
-    private FebsAccessDeniedHandler accessDeniedHandler;
-    @Autowired
-    private FebsAuthExceptionEntryPoint exceptionEntryPoint;
-    @Autowired
-    private FebsAuthProperties properties;
+    private final FebsAccessDeniedHandler accessDeniedHandler;
+    private final FebsAuthExceptionEntryPoint exceptionEntryPoint;
+    private final FebsAuthProperties properties;
 
     @Override
     public void configure(HttpSecurity http) throws Exception {

+ 7 - 8
febs-auth/src/main/java/cc/mrbird/febs/auth/configure/FebsSecurityConfigure.java

@@ -1,9 +1,8 @@
 package cc.mrbird.febs.auth.configure;
 
 import cc.mrbird.febs.auth.filter.ValidateCodeFilter;
-import cc.mrbird.febs.auth.service.impl.FebsUserDetailService;
 import cc.mrbird.febs.common.entity.constant.EndpointConstant;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Bean;
 import org.springframework.core.annotation.Order;
 import org.springframework.security.authentication.AuthenticationManager;
@@ -11,6 +10,7 @@ import org.springframework.security.config.annotation.authentication.builders.Au
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
 
@@ -21,16 +21,15 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic
  */
 @Order(2)
 @EnableWebSecurity
+@RequiredArgsConstructor
 public class FebsSecurityConfigure extends WebSecurityConfigurerAdapter {
 
-    @Autowired
-    private FebsUserDetailService userDetailService;
-    @Autowired
-    private ValidateCodeFilter validateCodeFilter;
-    @Autowired
-    private PasswordEncoder passwordEncoder;
+    private final UserDetailsService userDetailService;
+    private final ValidateCodeFilter validateCodeFilter;
+    private final PasswordEncoder passwordEncoder;
 
     @Bean
+    @Override
     public AuthenticationManager authenticationManagerBean() throws Exception {
         return super.authenticationManagerBean();
     }

+ 15 - 15
febs-auth/src/main/java/cc/mrbird/febs/auth/controller/OAuthClientDetailsController.java → febs-auth/src/main/java/cc/mrbird/febs/auth/controller/OauthClientDetailsController.java

@@ -1,14 +1,14 @@
 package cc.mrbird.febs.auth.controller;
 
-import cc.mrbird.febs.auth.entity.OAuthClientDetails;
-import cc.mrbird.febs.auth.service.OAuthClientDetailsService;
+import cc.mrbird.febs.auth.entity.OauthClientDetails;
+import cc.mrbird.febs.auth.service.OauthClientDetailsService;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.FebsUtil;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -23,39 +23,39 @@ import java.util.Map;
 @Slf4j
 @Validated
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("client")
-public class OAuthClientDetailsController {
+public class OauthClientDetailsController {
 
-    @Autowired
-    private OAuthClientDetailsService oAuthClientDetailsService;
+    private final OauthClientDetailsService oauthClientDetailsService;
 
     @GetMapping("check/{clientId}")
     public boolean checkUserName(@NotBlank(message = "{required}") @PathVariable String clientId) {
-        OAuthClientDetails client = this.oAuthClientDetailsService.findById(clientId);
+        OauthClientDetails client = this.oauthClientDetailsService.findById(clientId);
         return client == null;
     }
 
     @GetMapping("secret/{clientId}")
     @PreAuthorize("hasAuthority('client:decrypt')")
     public FebsResponse getOriginClientSecret(@NotBlank(message = "{required}") @PathVariable String clientId) {
-        OAuthClientDetails client = this.oAuthClientDetailsService.findById(clientId);
+        OauthClientDetails client = this.oauthClientDetailsService.findById(clientId);
         String origin = client != null ? client.getOriginSecret() : StringUtils.EMPTY;
         return new FebsResponse().data(origin);
     }
 
     @GetMapping
     @PreAuthorize("hasAuthority('client:view')")
-    public FebsResponse oauthCliendetailsList(QueryRequest request, OAuthClientDetails oAuthClientDetails) {
-        Map<String, Object> dataTable = FebsUtil.getDataTable(this.oAuthClientDetailsService.findOAuthClientDetails(request, oAuthClientDetails));
+    public FebsResponse oauthCliendetailsList(QueryRequest request, OauthClientDetails oAuthClientDetails) {
+        Map<String, Object> dataTable = FebsUtil.getDataTable(this.oauthClientDetailsService.findOauthClientDetails(request, oAuthClientDetails));
         return new FebsResponse().data(dataTable);
     }
 
 
     @PostMapping
     @PreAuthorize("hasAuthority('client:add')")
-    public void addOauthCliendetails(@Valid OAuthClientDetails oAuthClientDetails) throws FebsException {
+    public void addOauthCliendetails(@Valid OauthClientDetails oAuthClientDetails) throws FebsException {
         try {
-            this.oAuthClientDetailsService.createOAuthClientDetails(oAuthClientDetails);
+            this.oauthClientDetailsService.createOauthClientDetails(oAuthClientDetails);
         } catch (Exception e) {
             String message = "新增客户端失败";
             log.error(message, e);
@@ -67,7 +67,7 @@ public class OAuthClientDetailsController {
     @PreAuthorize("hasAuthority('client:delete')")
     public void deleteOauthCliendetails(@NotBlank(message = "{required}") String clientIds) throws FebsException {
         try {
-            this.oAuthClientDetailsService.deleteOAuthClientDetails(clientIds);
+            this.oauthClientDetailsService.deleteOauthClientDetails(clientIds);
         } catch (Exception e) {
             String message = "删除客户端失败";
             log.error(message, e);
@@ -77,9 +77,9 @@ public class OAuthClientDetailsController {
 
     @PutMapping
     @PreAuthorize("hasAuthority('client:update')")
-    public void updateOauthCliendetails(@Valid OAuthClientDetails oAuthClientDetails) throws FebsException {
+    public void updateOauthCliendetails(@Valid OauthClientDetails oAuthClientDetails) throws FebsException {
         try {
-            this.oAuthClientDetailsService.updateOAuthClientDetails(oAuthClientDetails);
+            this.oauthClientDetailsService.updateOauthClientDetails(oAuthClientDetails);
         } catch (Exception e) {
             String message = "修改客户端失败";
             log.error(message, e);

+ 4 - 5
febs-auth/src/main/java/cc/mrbird/febs/auth/controller/SecurityController.java

@@ -3,7 +3,7 @@ package cc.mrbird.febs.auth.controller;
 import cc.mrbird.febs.auth.manager.UserManager;
 import cc.mrbird.febs.auth.service.ValidateCodeService;
 import cc.mrbird.febs.common.exception.ValidateCodeException;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -16,12 +16,11 @@ import java.security.Principal;
  * @author MrBird
  */
 @RestController
+@RequiredArgsConstructor
 public class SecurityController {
 
-    @Autowired
-    private ValidateCodeService validateCodeService;
-    @Autowired
-    private UserManager userManager;
+    private final ValidateCodeService validateCodeService;
+    private final UserManager userManager;
 
     @GetMapping("user")
     public Principal currentUser(Principal principal) {

+ 4 - 3
febs-auth/src/main/java/cc/mrbird/febs/auth/controller/SocialLoginController.java

@@ -6,13 +6,13 @@ import cc.mrbird.febs.auth.service.SocialLoginService;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.FebsUtil;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import me.zhyd.oauth.model.AuthCallback;
 import me.zhyd.oauth.model.AuthUser;
 import me.zhyd.oauth.request.AuthRequest;
 import me.zhyd.oauth.utils.AuthStateUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.stereotype.Controller;
@@ -30,17 +30,18 @@ import java.util.List;
  */
 @Slf4j
 @Controller
+@RequiredArgsConstructor
 @RequestMapping("social")
 public class SocialLoginController {
 
     private static final String TYPE_LOGIN = "login";
     private static final String TYPE_BIND = "bind";
 
-    @Autowired
-    private SocialLoginService socialLoginService;
+    private final SocialLoginService socialLoginService;
     @Value("${febs.frontUrl}")
     private String frontUrl;
 
+
     /**
      * 登录
      *

+ 1 - 1
febs-auth/src/main/java/cc/mrbird/febs/auth/entity/OAuthClientDetails.java → febs-auth/src/main/java/cc/mrbird/febs/auth/entity/OauthClientDetails.java

@@ -15,7 +15,7 @@ import java.io.Serializable;
  */
 @Data
 @TableName("oauth_client_details")
-public class OAuthClientDetails implements Serializable {
+public class OauthClientDetails implements Serializable {
 
     private static final long serialVersionUID = 421783821058285802L;
 

+ 3 - 3
febs-auth/src/main/java/cc/mrbird/febs/auth/filter/ValidateCodeFilter.java

@@ -7,9 +7,9 @@ import cc.mrbird.febs.common.entity.constant.GrantTypeConstant;
 import cc.mrbird.febs.common.entity.constant.ParamsConstant;
 import cc.mrbird.febs.common.exception.ValidateCodeException;
 import cc.mrbird.febs.common.utils.FebsUtil;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.MediaType;
@@ -34,10 +34,10 @@ import java.util.Base64;
  */
 @Slf4j
 @Component
+@RequiredArgsConstructor
 public class ValidateCodeFilter extends OncePerRequestFilter {
 
-    @Autowired
-    private ValidateCodeService validateCodeService;
+    private final ValidateCodeService validateCodeService;
 
     @Override
     protected void doFilterInternal(@Nonnull HttpServletRequest httpServletRequest, @Nonnull HttpServletResponse httpServletResponse, @Nonnull FilterChain filterChain) throws ServletException, IOException {

+ 10 - 11
febs-auth/src/main/java/cc/mrbird/febs/auth/manager/UserManager.java

@@ -7,7 +7,7 @@ import cc.mrbird.febs.common.entity.constant.FebsConstant;
 import cc.mrbird.febs.common.entity.system.Menu;
 import cc.mrbird.febs.common.entity.system.SystemUser;
 import cc.mrbird.febs.common.entity.system.UserRole;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -22,15 +22,13 @@ import java.util.stream.Collectors;
  * @author MrBird
  */
 @Service
-@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
+@RequiredArgsConstructor
+@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
 public class UserManager {
 
-    @Autowired
-    private UserMapper userMapper;
-    @Autowired
-    private MenuMapper menuMapper;
-    @Autowired
-    private UserRoleMapper userRoleMapper;
+    private final UserMapper userMapper;
+    private final MenuMapper menuMapper;
+    private final UserRoleMapper userRoleMapper;
 
     /**
      * 通过用户名查询用户信息
@@ -60,8 +58,8 @@ public class UserManager {
      * @param password password
      * @return SystemUser SystemUser
      */
-    @Transactional
-    public SystemUser registUser(String username,String password) {
+    @Transactional(rollbackFor = Exception.class)
+    public SystemUser registUser(String username, String password) {
         SystemUser systemUser = new SystemUser();
         systemUser.setUsername(username);
         systemUser.setPassword(password);
@@ -74,7 +72,8 @@ public class UserManager {
 
         UserRole userRole = new UserRole();
         userRole.setUserId(systemUser.getUserId());
-        userRole.setRoleId(FebsConstant.REGISTER_ROLE_ID); // 注册用户角色 ID
+        // 注册用户角色 ID
+        userRole.setRoleId(FebsConstant.REGISTER_ROLE_ID);
         this.userRoleMapper.insert(userRole);
         return systemUser;
     }

+ 6 - 0
febs-auth/src/main/java/cc/mrbird/febs/auth/mapper/MenuMapper.java

@@ -10,5 +10,11 @@ import java.util.List;
  */
 public interface MenuMapper extends BaseMapper<Menu> {
 
+    /**
+     * 获取用户权限集
+     *
+     * @param username 用户名
+     * @return 权限集合
+     */
     List<Menu> findUserPermissions(String username);
 }

+ 2 - 2
febs-auth/src/main/java/cc/mrbird/febs/auth/mapper/OAuthClientDetailsMapper.java → febs-auth/src/main/java/cc/mrbird/febs/auth/mapper/OauthClientDetailsMapper.java

@@ -1,10 +1,10 @@
 package cc.mrbird.febs.auth.mapper;
 
-import cc.mrbird.febs.auth.entity.OAuthClientDetails;
+import cc.mrbird.febs.auth.entity.OauthClientDetails;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**
  * @author Yuuki
  */
-public interface OAuthClientDetailsMapper extends BaseMapper<OAuthClientDetails> {
+public interface OauthClientDetailsMapper extends BaseMapper<OauthClientDetails> {
 }

+ 6 - 0
febs-auth/src/main/java/cc/mrbird/febs/auth/mapper/UserMapper.java

@@ -8,5 +8,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface UserMapper extends BaseMapper<SystemUser> {
 
+    /**
+     * 获取用户
+     *
+     * @param username 用户名
+     * @return 用户
+     */
     SystemUser findByName(String username);
 }

+ 3 - 0
febs-auth/src/main/java/cc/mrbird/febs/auth/mapper/UserRoleMapper.java

@@ -3,6 +3,9 @@ package cc.mrbird.febs.auth.mapper;
 import cc.mrbird.febs.common.entity.system.UserRole;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+/**
+ * @author MrBird
+ */
 public interface UserRoleMapper extends BaseMapper<UserRole> {
 
 }

+ 6 - 3
febs-auth/src/main/java/cc/mrbird/febs/auth/runner/StartedUpRunner.java

@@ -1,8 +1,8 @@
 package cc.mrbird.febs.auth.runner;
 
 import cc.mrbird.febs.common.entity.constant.FebsServerConstant;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
@@ -11,12 +11,15 @@ import org.springframework.stereotype.Component;
 
 import java.time.LocalDateTime;
 
+/**
+ * @author MrBird
+ */
 @Slf4j
 @Component
+@RequiredArgsConstructor
 public class StartedUpRunner implements ApplicationRunner {
 
-    @Autowired
-    private ConfigurableApplicationContext context;
+    private final ConfigurableApplicationContext context;
 
     @Value("${spring.application.name:'" + FebsServerConstant.FEBS_AUTH + "'}")
     private String applicationName;

+ 10 - 9
febs-auth/src/main/java/cc/mrbird/febs/auth/service/OAuthClientDetailsService.java → febs-auth/src/main/java/cc/mrbird/febs/auth/service/OauthClientDetailsService.java

@@ -1,6 +1,6 @@
 package cc.mrbird.febs.auth.service;
 
-import cc.mrbird.febs.auth.entity.OAuthClientDetails;
+import cc.mrbird.febs.auth.entity.OauthClientDetails;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.exception.FebsException;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -9,43 +9,44 @@ import com.baomidou.mybatisplus.extension.service.IService;
 /**
  * @author Yuuki
  */
-public interface OAuthClientDetailsService extends IService<OAuthClientDetails> {
+public interface OauthClientDetailsService extends IService<OauthClientDetails> {
 
     /**
      * 查询(分页)
      *
      * @param request            QueryRequest
      * @param oauthClientDetails oauthClientDetails
-     * @return IPage<OAuthClientDetails>
+     * @return IPage<OauthClientDetails>
      */
-    IPage<OAuthClientDetails> findOAuthClientDetails(QueryRequest request, OAuthClientDetails oauthClientDetails);
+    IPage<OauthClientDetails> findOauthClientDetails(QueryRequest request, OauthClientDetails oauthClientDetails);
 
     /**
      * 根据主键查询
      *
      * @param clientId clientId
-     * @return OAuthClientDetails
+     * @return OauthClientDetails
      */
-    OAuthClientDetails findById(String clientId);
+    OauthClientDetails findById(String clientId);
 
     /**
      * 新增
      *
      * @param oauthClientDetails oauthClientDetails
+     * @throws FebsException FebsException
      */
-    void createOAuthClientDetails(OAuthClientDetails oauthClientDetails) throws FebsException;
+    void createOauthClientDetails(OauthClientDetails oauthClientDetails) throws FebsException;
 
     /**
      * 修改
      *
      * @param oauthClientDetails oauthClientDetails
      */
-    void updateOAuthClientDetails(OAuthClientDetails oauthClientDetails);
+    void updateOauthClientDetails(OauthClientDetails oauthClientDetails);
 
     /**
      * 删除
      *
      * @param clientIds clientIds
      */
-    void deleteOAuthClientDetails(String clientIds);
+    void deleteOauthClientDetails(String clientIds);
 }

+ 3 - 0
febs-auth/src/main/java/cc/mrbird/febs/auth/service/SocialLoginService.java

@@ -11,6 +11,9 @@ import org.springframework.security.oauth2.common.OAuth2AccessToken;
 
 import java.util.List;
 
+/**
+ * @author MrBird
+ */
 public interface SocialLoginService {
 
     /**

+ 3 - 0
febs-auth/src/main/java/cc/mrbird/febs/auth/service/ValidateCodeService.java

@@ -6,6 +6,9 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 
+/**
+ * @author MrBird
+ */
 public interface ValidateCodeService {
 
     /**

+ 55 - 55
febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/FebsUserDetailService.java → febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/FebsUserDetailServiceImpl.java

@@ -1,55 +1,55 @@
-package cc.mrbird.febs.auth.service.impl;
-
-import cc.mrbird.febs.auth.manager.UserManager;
-import cc.mrbird.febs.common.entity.FebsAuthUser;
-import cc.mrbird.febs.common.entity.constant.ParamsConstant;
-import cc.mrbird.febs.common.entity.constant.SocialConstant;
-import cc.mrbird.febs.common.entity.system.SystemUser;
-import cc.mrbird.febs.common.utils.FebsUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.authority.AuthorityUtils;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.core.userdetails.UserDetailsService;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.stereotype.Service;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * @author MrBird
- */
-@Service
-public class FebsUserDetailService implements UserDetailsService {
-
-    @Autowired
-    private PasswordEncoder passwordEncoder;
-    @Autowired
-    private UserManager userManager;
-
-    @Override
-    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
-        HttpServletRequest httpServletRequest = FebsUtil.getHttpServletRequest();
-        SystemUser systemUser = userManager.findByName(username);
-        if (systemUser != null) {
-            String permissions = userManager.findUserPermissions(systemUser.getUsername());
-            boolean notLocked = false;
-            if (StringUtils.equals(SystemUser.STATUS_VALID, systemUser.getStatus()))
-                notLocked = true;
-            String password = systemUser.getPassword();
-            String loginType = (String) httpServletRequest.getAttribute(ParamsConstant.LOGIN_TYPE);
-            if (StringUtils.equals(loginType, SocialConstant.SOCIAL_LOGIN)) {
-                password = passwordEncoder.encode(SocialConstant.SOCIAL_LOGIN_PASSWORD);
-            }
-            FebsAuthUser authUser = new FebsAuthUser(systemUser.getUsername(), password, true, true, true, notLocked,
-                    AuthorityUtils.commaSeparatedStringToAuthorityList(permissions));
-
-            BeanUtils.copyProperties(systemUser, authUser);
-            return authUser;
-        } else {
-            throw new UsernameNotFoundException("");
-        }
-    }
-}
+package cc.mrbird.febs.auth.service.impl;
+
+import cc.mrbird.febs.auth.manager.UserManager;
+import cc.mrbird.febs.common.entity.FebsAuthUser;
+import cc.mrbird.febs.common.entity.constant.ParamsConstant;
+import cc.mrbird.febs.common.entity.constant.SocialConstant;
+import cc.mrbird.febs.common.entity.system.SystemUser;
+import cc.mrbird.febs.common.utils.FebsUtil;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.security.core.authority.AuthorityUtils;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @author MrBird
+ */
+@Service
+@RequiredArgsConstructor
+public class FebsUserDetailServiceImpl implements UserDetailsService {
+
+    private final PasswordEncoder passwordEncoder;
+    private final UserManager userManager;
+
+    @Override
+    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+        HttpServletRequest httpServletRequest = FebsUtil.getHttpServletRequest();
+        SystemUser systemUser = userManager.findByName(username);
+        if (systemUser != null) {
+            String permissions = userManager.findUserPermissions(systemUser.getUsername());
+            boolean notLocked = false;
+            if (StringUtils.equals(SystemUser.STATUS_VALID, systemUser.getStatus())) {
+                notLocked = true;
+            }
+            String password = systemUser.getPassword();
+            String loginType = (String) httpServletRequest.getAttribute(ParamsConstant.LOGIN_TYPE);
+            if (StringUtils.equals(loginType, SocialConstant.SOCIAL_LOGIN)) {
+                password = passwordEncoder.encode(SocialConstant.SOCIAL_LOGIN_PASSWORD);
+            }
+            FebsAuthUser authUser = new FebsAuthUser(systemUser.getUsername(), password, true, true, true, notLocked,
+                    AuthorityUtils.commaSeparatedStringToAuthorityList(permissions));
+
+            BeanUtils.copyProperties(systemUser, authUser);
+            return authUser;
+        } else {
+            throw new UsernameNotFoundException("");
+        }
+    }
+}

+ 27 - 28
febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/OAuthClientDetailsServiceImpl.java → febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/OauthClientDetailsServiceImpl.java

@@ -1,17 +1,17 @@
 package cc.mrbird.febs.auth.service.impl;
 
-import cc.mrbird.febs.auth.entity.OAuthClientDetails;
-import cc.mrbird.febs.auth.mapper.OAuthClientDetailsMapper;
-import cc.mrbird.febs.auth.service.OAuthClientDetailsService;
+import cc.mrbird.febs.auth.entity.OauthClientDetails;
+import cc.mrbird.febs.auth.mapper.OauthClientDetailsMapper;
+import cc.mrbird.febs.auth.service.OauthClientDetailsService;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.exception.FebsException;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -26,24 +26,23 @@ import java.util.List;
  */
 @Slf4j
 @Service
-@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
-public class OAuthClientDetailsServiceImpl extends ServiceImpl<OAuthClientDetailsMapper, OAuthClientDetails> implements OAuthClientDetailsService {
+@RequiredArgsConstructor
+@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
+public class OauthClientDetailsServiceImpl extends ServiceImpl<OauthClientDetailsMapper, OauthClientDetails> implements OauthClientDetailsService {
 
-    @Autowired
-    private PasswordEncoder passwordEncoder;
-    @Autowired
-    private RedisClientDetailsService redisClientDetailsService;
+    private final PasswordEncoder passwordEncoder;
+    private final RedisClientDetailsService redisClientDetailsService;
 
     @Override
-    public IPage<OAuthClientDetails> findOAuthClientDetails(QueryRequest request, OAuthClientDetails oauthClientDetails) {
-        LambdaQueryWrapper<OAuthClientDetails> queryWrapper = new LambdaQueryWrapper<>();
+    public IPage<OauthClientDetails> findOauthClientDetails(QueryRequest request, OauthClientDetails oauthClientDetails) {
+        LambdaQueryWrapper<OauthClientDetails> queryWrapper = new LambdaQueryWrapper<>();
         if (StringUtils.isNotBlank(oauthClientDetails.getClientId())) {
-            queryWrapper.eq(OAuthClientDetails::getClientId, oauthClientDetails.getClientId());
+            queryWrapper.eq(OauthClientDetails::getClientId, oauthClientDetails.getClientId());
         }
-        Page<OAuthClientDetails> page = new Page<>(request.getPageNum(), request.getPageSize());
-        IPage<OAuthClientDetails> result = this.page(page, queryWrapper);
+        Page<OauthClientDetails> page = new Page<>(request.getPageNum(), request.getPageSize());
+        IPage<OauthClientDetails> result = this.page(page, queryWrapper);
 
-        List<OAuthClientDetails> records = new ArrayList<>();
+        List<OauthClientDetails> records = new ArrayList<>();
         result.getRecords().forEach(o -> {
             o.setOriginSecret(null);
             o.setClientSecret(null);
@@ -54,14 +53,14 @@ public class OAuthClientDetailsServiceImpl extends ServiceImpl<OAuthClientDetail
     }
 
     @Override
-    public OAuthClientDetails findById(String clientId) {
+    public OauthClientDetails findById(String clientId) {
         return this.baseMapper.selectById(clientId);
     }
 
     @Override
-    @Transactional
-    public void createOAuthClientDetails(OAuthClientDetails oauthClientDetails) throws FebsException {
-        OAuthClientDetails byId = this.findById(oauthClientDetails.getClientId());
+    @Transactional(rollbackFor = Exception.class)
+    public void createOauthClientDetails(OauthClientDetails oauthClientDetails) throws FebsException {
+        OauthClientDetails byId = this.findById(oauthClientDetails.getClientId());
         if (byId != null) {
             throw new FebsException("该Client已存在");
         }
@@ -75,12 +74,12 @@ public class OAuthClientDetailsServiceImpl extends ServiceImpl<OAuthClientDetail
     }
 
     @Override
-    @Transactional
-    public void updateOAuthClientDetails(OAuthClientDetails oauthClientDetails) {
+    @Transactional(rollbackFor = Exception.class)
+    public void updateOauthClientDetails(OauthClientDetails oauthClientDetails) {
         String clientId = oauthClientDetails.getClientId();
 
-        LambdaQueryWrapper<OAuthClientDetails> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(OAuthClientDetails::getClientId, oauthClientDetails.getClientId());
+        LambdaQueryWrapper<OauthClientDetails> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(OauthClientDetails::getClientId, oauthClientDetails.getClientId());
 
         oauthClientDetails.setClientId(null);
         oauthClientDetails.setClientSecret(null);
@@ -93,11 +92,11 @@ public class OAuthClientDetailsServiceImpl extends ServiceImpl<OAuthClientDetail
     }
 
     @Override
-    @Transactional
-    public void deleteOAuthClientDetails(String clientIds) {
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteOauthClientDetails(String clientIds) {
         Object[] clientIdArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(clientIds, ",");
-        LambdaQueryWrapper<OAuthClientDetails> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.in(OAuthClientDetails::getClientId, clientIdArray);
+        LambdaQueryWrapper<OauthClientDetails> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(OauthClientDetails::getClientId, clientIdArray);
         boolean removed = this.remove(queryWrapper);
         if (removed) {
             log.info("删除ClientId为({})的Client", clientIds);

+ 3 - 4
febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/RedisClientDetailsService.java

@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.oauth2.common.exceptions.InvalidClientException;
 import org.springframework.security.oauth2.provider.ClientDetails;
 import org.springframework.security.oauth2.provider.client.BaseClientDetails;
@@ -26,11 +25,11 @@ public class RedisClientDetailsService extends JdbcClientDetailsService {
      */
     private static final String CACHE_CLIENT_KEY = "client_details";
 
-    @Autowired
-    RedisService redisService;
+    private final RedisService redisService;
 
-    public RedisClientDetailsService(DataSource dataSource) {
+    public RedisClientDetailsService(DataSource dataSource, RedisService redisService) {
         super(dataSource);
+        this.redisService = redisService;
     }
 
     @Override

+ 15 - 20
febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/SocialLoginServiceImpl.java

@@ -15,13 +15,13 @@ import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.FebsUtil;
 import cn.hutool.core.util.StrUtil;
 import com.xkcoding.justauth.AuthRequestFactory;
+import lombok.RequiredArgsConstructor;
 import me.zhyd.oauth.config.AuthSource;
 import me.zhyd.oauth.model.AuthCallback;
 import me.zhyd.oauth.model.AuthResponse;
 import me.zhyd.oauth.model.AuthUser;
 import me.zhyd.oauth.request.AuthRequest;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.security.oauth2.provider.ClientDetails;
@@ -38,6 +38,7 @@ import java.util.Map;
  * @author MrBird
  */
 @Service
+@RequiredArgsConstructor
 public class SocialLoginServiceImpl implements SocialLoginService {
 
     private static final String USERNAME = "username";
@@ -46,20 +47,13 @@ public class SocialLoginServiceImpl implements SocialLoginService {
     private static final String NOT_BIND = "not_bind";
     private static final String SOCIAL_LOGIN_SUCCESS = "social_login_success";
 
-    @Autowired
-    private UserManager userManager;
-    @Autowired
-    private AuthRequestFactory factory;
-    @Autowired
-    private FebsAuthProperties properties;
-    @Autowired
-    private PasswordEncoder passwordEncoder;
-    @Autowired
-    private UserConnectionService userConnectionService;
-    @Autowired
-    private ResourceOwnerPasswordTokenGranter granter;
-    @Autowired
-    private RedisClientDetailsService redisClientDetailsService;
+    private final UserManager userManager;
+    private final AuthRequestFactory factory;
+    private final FebsAuthProperties properties;
+    private final PasswordEncoder passwordEncoder;
+    private final UserConnectionService userConnectionService;
+    private final ResourceOwnerPasswordTokenGranter granter;
+    private final RedisClientDetailsService redisClientDetailsService;
 
     @Override
     public AuthRequest renderAuth(String oauthType) throws FebsException {
@@ -94,7 +88,7 @@ public class SocialLoginServiceImpl implements SocialLoginService {
                 if (user == null) {
                     throw new FebsException("系统中未找到与第三方账号对应的账户");
                 }
-                OAuth2AccessToken oAuth2AccessToken = getOAuth2AccessToken(user);
+                OAuth2AccessToken oAuth2AccessToken = getOauth2AccessToken(user);
                 febsResponse.message(SOCIAL_LOGIN_SUCCESS).data(oAuth2AccessToken);
                 febsResponse.put(USERNAME, user.getUsername());
             }
@@ -111,7 +105,7 @@ public class SocialLoginServiceImpl implements SocialLoginService {
             throw new FebsException("绑定系统账号失败,用户名或密码错误!");
         }
         this.createConnection(systemUser, authUser);
-        return this.getOAuth2AccessToken(systemUser);
+        return this.getOauth2AccessToken(systemUser);
     }
 
     @Override
@@ -123,7 +117,7 @@ public class SocialLoginServiceImpl implements SocialLoginService {
         String encryptPassword = passwordEncoder.encode(registUser.getBindPassword());
         SystemUser systemUser = this.userManager.registUser(registUser.getBindUsername(), encryptPassword);
         this.createConnection(systemUser, authUser);
-        return this.getOAuth2AccessToken(systemUser);
+        return this.getOauth2AccessToken(systemUser);
     }
 
     @Override
@@ -170,9 +164,10 @@ public class SocialLoginServiceImpl implements SocialLoginService {
     }
 
     private AuthCallback resolveAuthCallback(AuthCallback callback) {
+        int stateLength = 3;
         String state = callback.getState();
         String[] strings = StringUtils.splitByWholeSeparatorPreserveAllTokens(state, "::");
-        if (strings.length == 3) {
+        if (strings.length == stateLength) {
             callback.setState(strings[0] + "::" + strings[1]);
         }
         return callback;
@@ -191,7 +186,7 @@ public class SocialLoginServiceImpl implements SocialLoginService {
         return StringUtils.equalsIgnoreCase(username, currentUsername);
     }
 
-    private OAuth2AccessToken getOAuth2AccessToken(SystemUser user) throws FebsException {
+    private OAuth2AccessToken getOauth2AccessToken(SystemUser user) throws FebsException {
         final HttpServletRequest httpServletRequest = FebsUtil.getHttpServletRequest();
         httpServletRequest.setAttribute(ParamsConstant.LOGIN_TYPE, SocialConstant.SOCIAL_LOGIN);
         String socialLoginClientId = properties.getSocialLoginClientId();

+ 3 - 3
febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/UserConnectionServiceImpl.java

@@ -15,7 +15,7 @@ import java.util.List;
  * @author MrBird
  */
 @Service
-@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
+@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
 public class UserConnectionServiceImpl extends ServiceImpl<UserConnectionMapper, UserConnection> implements UserConnectionService {
 
     @Override
@@ -34,13 +34,13 @@ public class UserConnectionServiceImpl extends ServiceImpl<UserConnectionMapper,
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void createUserConnection(UserConnection userConnection) {
         this.baseMapper.insert(userConnection);
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void deleteByCondition(String username, String providerName) {
         LambdaQueryWrapper<UserConnection> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(UserConnection::getUserName, username);

+ 4 - 5
febs-auth/src/main/java/cc/mrbird/febs/auth/service/impl/ValidateCodeServiceImpl.java

@@ -11,8 +11,8 @@ import cc.mrbird.febs.common.service.RedisService;
 import com.wf.captcha.GifCaptcha;
 import com.wf.captcha.SpecCaptcha;
 import com.wf.captcha.base.Captcha;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Service;
@@ -27,12 +27,11 @@ import java.io.IOException;
  * @author MrBird
  */
 @Service
+@RequiredArgsConstructor
 public class ValidateCodeServiceImpl implements ValidateCodeService {
 
-    @Autowired
-    private RedisService redisService;
-    @Autowired
-    private FebsAuthProperties properties;
+    private final RedisService redisService;
+    private final FebsAuthProperties properties;
 
     @Override
     public void create(HttpServletRequest request, HttpServletResponse response) throws IOException, ValidateCodeException {

+ 2 - 2
febs-common/src/main/java/cc/mrbird/febs/common/annotation/EnableFebsOauth2FeignClient.java

@@ -1,6 +1,6 @@
 package cc.mrbird.febs.common.annotation;
 
-import cc.mrbird.febs.common.configure.FebsOAuth2FeignConfigure;
+import cc.mrbird.febs.common.configure.FebsOauth2FeignConfigure;
 import org.springframework.context.annotation.Import;
 
 import java.lang.annotation.*;
@@ -11,6 +11,6 @@ import java.lang.annotation.*;
 @Target({ElementType.TYPE})
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
-@Import(FebsOAuth2FeignConfigure.class)
+@Import(FebsOauth2FeignConfigure.class)
 public @interface EnableFebsOauth2FeignClient {
 }

+ 1 - 1
febs-common/src/main/java/cc/mrbird/febs/common/configure/FebsOAuth2FeignConfigure.java → febs-common/src/main/java/cc/mrbird/febs/common/configure/FebsOauth2FeignConfigure.java

@@ -12,7 +12,7 @@ import org.springframework.util.Base64Utils;
  *
  * @author MrBird
  */
-public class FebsOAuth2FeignConfigure {
+public class FebsOauth2FeignConfigure {
 
     @Bean
     public RequestInterceptor oauth2FeignRequestInterceptor() {

+ 9 - 1
febs-common/src/main/java/cc/mrbird/febs/common/configure/FebsServerProtectConfigure.java

@@ -1,6 +1,7 @@
 package cc.mrbird.febs.common.configure;
 
 import cc.mrbird.febs.common.interceptor.FebsServerProtectInterceptor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -16,6 +17,13 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  */
 public class FebsServerProtectConfigure implements WebMvcConfigurer {
 
+    private HandlerInterceptor febsServerProtectInterceptor;
+
+    @Autowired
+    public void setFebsServerProtectInterceptor(HandlerInterceptor febsServerProtectInterceptor) {
+        this.febsServerProtectInterceptor = febsServerProtectInterceptor;
+    }
+
     @Bean
     @ConditionalOnMissingBean(value = PasswordEncoder.class)
     public PasswordEncoder passwordEncoder() {
@@ -29,6 +37,6 @@ public class FebsServerProtectConfigure implements WebMvcConfigurer {
 
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
-        registry.addInterceptor(febsServerProtectInterceptor());
+        registry.addInterceptor(febsServerProtectInterceptor);
     }
 }

+ 5 - 4
febs-common/src/main/java/cc/mrbird/febs/common/converter/TimeConverter.java

@@ -4,6 +4,7 @@ import cc.mrbird.febs.common.utils.DateUtil;
 import com.wuwenze.poi.convert.WriteConverter;
 import com.wuwenze.poi.exception.ExcelKitWriteConverterException;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 
 import java.text.ParseException;
 
@@ -16,11 +17,11 @@ import java.text.ParseException;
 public class TimeConverter implements WriteConverter {
     @Override
     public String convert(Object value) {
-        if (value == null)
-            return "";
-        else {
+        if (value == null) {
+            return StringUtils.EMPTY;
+        } else {
             try {
-                return DateUtil.formatCSTTime(value.toString(), DateUtil.FULL_TIME_SPLIT_PATTERN);
+                return DateUtil.formatCstTime(value.toString(), DateUtil.FULL_TIME_SPLIT_PATTERN);
             } catch (ParseException e) {
                 String message = "时间转换异常";
                 log.error(message, e);

+ 2 - 0
febs-common/src/main/java/cc/mrbird/febs/common/entity/router/RouterMeta.java

@@ -8,6 +8,8 @@ import java.io.Serializable;
 
 /**
  * Vue路由 Meta
+ *
+ * @author MrBird
  */
 @Data
 @AllArgsConstructor

+ 2 - 0
febs-common/src/main/java/cc/mrbird/febs/common/entity/router/VueRouter.java

@@ -10,6 +10,8 @@ import java.util.List;
 
 /**
  * 构建 Vue路由
+ *
+ * @author MrBird
  */
 @Data
 @JsonInclude(JsonInclude.Include.NON_NULL)

+ 5 - 0
febs-common/src/main/java/cc/mrbird/febs/common/entity/system/Dept.java

@@ -14,6 +14,9 @@ import javax.validation.constraints.Size;
 import java.io.Serializable;
 import java.util.Date;
 
+/**
+ * @author MrBird
+ */
 @Data
 @TableName("t_dept")
 @Excel("部门信息表")
@@ -21,6 +24,8 @@ public class Dept implements Serializable {
 
     private static final long serialVersionUID = -7790334862410409053L;
 
+    public static final Long TOP_DEPT_ID = 0L;
+
     @TableId(value = "DEPT_ID", type = IdType.AUTO)
     private Long deptId;
 

+ 13 - 12
febs-common/src/main/java/cc/mrbird/febs/common/entity/system/LoginLog.java

@@ -79,24 +79,24 @@ public class LoginLog implements Serializable {
             userAgent.append("]");
             int indexOfMac = userAgent.indexOf("Mac OS X");
             int indexOfWindows = userAgent.indexOf("Windows NT");
-            int indexOfIE = userAgent.indexOf("MSIE");
-            int indexOfIE11 = userAgent.indexOf("rv:");
-            int indexOfFF = userAgent.indexOf("Firefox");
+            int indexOfIe = userAgent.indexOf("MSIE");
+            int indexOfIe11 = userAgent.indexOf("rv:");
+            int indexOfFirefox = userAgent.indexOf("Firefox");
             int indexOfSogou = userAgent.indexOf("MetaSr");
             int indexOfChrome = userAgent.indexOf("Chrome");
             int indexOfSafari = userAgent.indexOf("Safari");
             boolean isMac = indexOfMac > 0;
             boolean isWindows = indexOfWindows > 0;
             boolean isLinux = userAgent.indexOf("Linux") > 0;
-            boolean containIE = indexOfIE > 0 || (isWindows && (indexOfIE11 > 0));
-            boolean containFF = indexOfFF > 0;
+            boolean containIe = indexOfIe > 0 || (isWindows && (indexOfIe11 > 0));
+            boolean containFireFox = indexOfFirefox > 0;
             boolean containSogou = indexOfSogou > 0;
             boolean containChrome = indexOfChrome > 0;
             boolean containSafari = indexOfSafari > 0;
             String browser = "";
             if (containSogou) {
-                if (containIE) {
-                    browser = "搜狗" + userAgent.substring(indexOfIE, indexOfIE + "IE x.x".length());
+                if (containIe) {
+                    browser = "搜狗" + userAgent.substring(indexOfIe, indexOfIe + "IE x.x".length());
                 } else if (containChrome) {
                     browser = "搜狗" + userAgent.substring(indexOfChrome, indexOfChrome + "Chrome/xx".length());
                 }
@@ -106,13 +106,13 @@ public class LoginLog implements Serializable {
                 int indexOfSafariVersion = userAgent.indexOf("Version");
                 browser = "Safari "
                         + userAgent.substring(indexOfSafariVersion, indexOfSafariVersion + "Version/x.x.x.x".length());
-            } else if (containFF) {
-                browser = userAgent.substring(indexOfFF, indexOfFF + "Firefox/xx".length());
-            } else if (containIE) {
-                if (indexOfIE11 > 0) {
+            } else if (containFireFox) {
+                browser = userAgent.substring(indexOfFirefox, indexOfFirefox + "Firefox/xx".length());
+            } else if (containIe) {
+                if (indexOfIe11 > 0) {
                     browser = "IE 11";
                 } else {
-                    browser = userAgent.substring(indexOfIE, indexOfIE + "IE x.x".length());
+                    browser = userAgent.substring(indexOfIe, indexOfIe + "IE x.x".length());
                 }
             }
             String os = "";
@@ -148,6 +148,7 @@ public class LoginLog implements Serializable {
                         break;
                     case "10":
                         os += "10";
+                    default:
                         break;
                 }
             }

+ 8 - 2
febs-common/src/main/java/cc/mrbird/febs/common/entity/system/Menu.java

@@ -24,11 +24,17 @@ public class Menu implements Serializable {
 
     private static final long serialVersionUID = 7187628714679791771L;
 
-    // 菜单
+    /**
+     * 菜单
+     */
     public static final String TYPE_MENU = "0";
-    // 按钮
+    /**
+     * 按钮
+     */
     public static final String TYPE_BUTTON = "1";
 
+    public static final Long TOP_MENU_ID = 0L;
+
     /**
      * 菜单/按钮ID
      */

+ 21 - 7
febs-common/src/main/java/cc/mrbird/febs/common/entity/system/SystemUser.java

@@ -26,19 +26,33 @@ public class SystemUser implements Serializable {
 
     private static final long serialVersionUID = -4352868070794165001L;
 
-    // 用户状态:有效
+    /**
+     * 用户状态:有效
+     */
     public static final String STATUS_VALID = "1";
-    // 用户状态:锁定
+    /**
+     * 用户状态:锁定
+     */
     public static final String STATUS_LOCK = "0";
-    // 默认头像
+    /**
+     * 默认头像
+     */
     public static final String DEFAULT_AVATAR = "default.jpg";
-    // 默认密码
+    /**
+     * 默认密码
+     */
     public static final String DEFAULT_PASSWORD = "1234qwer";
-    // 性别男
+    /**
+     * 性别男
+     */
     public static final String SEX_MALE = "0";
-    // 性别女
+    /**
+     * 性别女
+     */
     public static final String SEX_FEMALE = "1";
-    // 性别保密
+    /**
+     * 性别保密
+     */
     public static final String SEX_UNKNOW = "2";
 
     /**

+ 2 - 2
febs-common/src/main/java/cc/mrbird/febs/common/selector/FebsCloudApplicationSelector.java

@@ -1,7 +1,7 @@
 package cc.mrbird.febs.common.selector;
 
 import cc.mrbird.febs.common.configure.FebsAuthExceptionConfigure;
-import cc.mrbird.febs.common.configure.FebsOAuth2FeignConfigure;
+import cc.mrbird.febs.common.configure.FebsOauth2FeignConfigure;
 import cc.mrbird.febs.common.configure.FebsServerProtectConfigure;
 import org.springframework.context.annotation.ImportSelector;
 import org.springframework.core.type.AnnotationMetadata;
@@ -18,7 +18,7 @@ public class FebsCloudApplicationSelector implements ImportSelector {
     public String[] selectImports(@Nonnull AnnotationMetadata annotationMetadata) {
         return new String[]{
                 FebsAuthExceptionConfigure.class.getName(),
-                FebsOAuth2FeignConfigure.class.getName(),
+                FebsOauth2FeignConfigure.class.getName(),
                 FebsServerProtectConfigure.class.getName()
         };
     }

+ 7 - 4
febs-common/src/main/java/cc/mrbird/febs/common/service/RedisService.java

@@ -145,7 +145,7 @@ public class RedisService {
      * 递减
      *
      * @param key   键
-     * @param delta 要减少几(小于0)
+     * @param delta 要减少几
      * @return Long
      */
     public Long decr(String key, Long delta) {
@@ -357,8 +357,9 @@ public class RedisService {
     public Long sSetAndTime(String key, Long time, Object... values) {
         try {
             Long count = redisTemplate.opsForSet().add(key, values);
-            if (time > 0)
+            if (time > 0) {
                 expire(key, time);
+            }
             return count;
         } catch (Exception e) {
             e.printStackTrace();
@@ -474,8 +475,9 @@ public class RedisService {
     public Boolean lSet(String key, Object value, Long time) {
         try {
             redisTemplate.opsForList().rightPush(key, value);
-            if (time > 0)
+            if (time > 0) {
                 expire(key, time);
+            }
             return true;
         } catch (Exception e) {
             e.printStackTrace();
@@ -511,8 +513,9 @@ public class RedisService {
     public Boolean lSet(String key, List<Object> value, Long time) {
         try {
             redisTemplate.opsForList().rightPushAll(key, value);
-            if (time > 0)
+            if (time > 0) {
                 expire(key, time);
+            }
             return true;
         } catch (Exception e) {
             e.printStackTrace();

+ 1 - 1
febs-common/src/main/java/cc/mrbird/febs/common/utils/DateUtil.java

@@ -65,7 +65,7 @@ public class DateUtil {
      * @return 格式化后的字符串
      * @throws ParseException 异常
      */
-    public static String formatCSTTime(String date, String format) throws ParseException {
+    public static String formatCstTime(String date, String format) throws ParseException {
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat(CST_TIME_PATTERN, Locale.US);
         Date usDate = simpleDateFormat.parse(date);
         return getDateFormat(usDate, format);

+ 29 - 24
febs-common/src/main/java/cc/mrbird/febs/common/utils/FebsUtil.java

@@ -38,6 +38,9 @@ import java.util.stream.IntStream;
 @Slf4j
 public class FebsUtil {
 
+    private static final Pattern CHINESE_PATTERN = Pattern.compile("[\u4e00-\u9fa5]");
+    private static final String UNKNOW = "unknown";
+
     /**
      * 驼峰转下划线
      *
@@ -45,17 +48,20 @@ public class FebsUtil {
      * @return 结果
      */
     public static String camelToUnderscore(String value) {
-        if (StringUtils.isBlank(value))
+        if (StringUtils.isBlank(value)) {
             return value;
+        }
         String[] arr = StringUtils.splitByCharacterTypeCamelCase(value);
-        if (arr.length == 0)
+        if (arr.length == 0) {
             return value;
+        }
         StringBuilder result = new StringBuilder();
         IntStream.range(0, arr.length).forEach(i -> {
-            if (i != arr.length - 1)
+            if (i != arr.length - 1) {
                 result.append(arr[i]).append("_");
-            else
+            } else {
                 result.append(arr[i]);
+            }
         });
         return StringUtils.lowerCase(result.toString());
     }
@@ -139,7 +145,7 @@ public class FebsUtil {
      * @return Map<String, Object>
      */
     public static Map<String, Object> getDataTable(IPage<?> pageInfo) {
-        Map<String, Object> data = new HashMap<>();
+        Map<String, Object> data = new HashMap<>(2);
         data.put(PageConstant.ROWS, pageInfo.getRecords());
         data.put(PageConstant.TOTAL, pageInfo.getTotal());
         return data;
@@ -162,13 +168,13 @@ public class FebsUtil {
     public static String getHttpServletRequestIpAddress() {
         HttpServletRequest request = getHttpServletRequest();
         String ip = request.getHeader("x-forwarded-for");
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) {
             ip = request.getHeader("Proxy-Client-IP");
         }
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) {
             ip = request.getHeader("WL-Proxy-Client-IP");
         }
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) {
             ip = request.getRemoteAddr();
         }
         return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
@@ -183,27 +189,27 @@ public class FebsUtil {
     public static String getServerHttpRequestIpAddress(ServerHttpRequest request) {
         HttpHeaders headers = request.getHeaders();
         String ip = headers.getFirst("x-forwarded-for");
-        if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
+        if (ip != null && ip.length() != 0 && !UNKNOW.equalsIgnoreCase(ip)) {
             if (ip.contains(",")) {
                 ip = ip.split(",")[0];
             }
         }
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) {
             ip = headers.getFirst("Proxy-Client-IP");
         }
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) {
             ip = headers.getFirst("WL-Proxy-Client-IP");
         }
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) {
             ip = headers.getFirst("HTTP_CLIENT_IP");
         }
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) {
             ip = headers.getFirst("HTTP_X_FORWARDED_FOR");
         }
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) {
             ip = headers.getFirst("X-Real-IP");
         }
-        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+        if (ip == null || ip.length() == 0 || UNKNOW.equalsIgnoreCase(ip)) {
             ip = Objects.requireNonNull(request.getRemoteAddress()).getAddress().getHostAddress();
         }
         return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
@@ -216,9 +222,8 @@ public class FebsUtil {
      * @return 结果
      */
     public static boolean containChinese(String value) {
-        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
-        Matcher m = p.matcher(value);
-        return m.find();
+        Matcher matcher = CHINESE_PATTERN.matcher(value);
+        return matcher.find();
     }
 
     /**
@@ -244,11 +249,11 @@ public class FebsUtil {
      * @return String 用户名
      */
     public static String getCurrentUsername() {
-        Object principal = getOAuth2Authentication().getPrincipal();
+        Object principal = getOauth2Authentication().getPrincipal();
         if (principal instanceof FebsAuthUser) {
             return ((FebsAuthUser) principal).getUsername();
         }
-        return (String) getOAuth2Authentication().getPrincipal();
+        return (String) getOauth2Authentication().getPrincipal();
     }
 
     /**
@@ -257,7 +262,7 @@ public class FebsUtil {
      * @return Collection<GrantedAuthority>权限集
      */
     public static Collection<GrantedAuthority> getCurrentUserAuthority() {
-        return getOAuth2Authentication().getAuthorities();
+        return getOauth2Authentication().getAuthorities();
     }
 
     /**
@@ -266,17 +271,17 @@ public class FebsUtil {
      * @return String 令牌内容
      */
     public static String getCurrentTokenValue() {
-        OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) getOAuth2Authentication().getDetails();
+        OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) getOauth2Authentication().getDetails();
         return details.getTokenValue();
     }
 
-    private static OAuth2Authentication getOAuth2Authentication() {
+    private static OAuth2Authentication getOauth2Authentication() {
         Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
         return (OAuth2Authentication) authentication;
     }
 
     @SuppressWarnings("all")
     private static LinkedHashMap<String, Object> getAuthenticationDetails() {
-        return (LinkedHashMap<String, Object>) getOAuth2Authentication().getUserAuthentication().getDetails();
+        return (LinkedHashMap<String, Object>) getOauth2Authentication().getUserAuthentication().getDetails();
     }
 }

+ 7 - 3
febs-common/src/main/java/cc/mrbird/febs/common/utils/FileUtil.java

@@ -57,8 +57,9 @@ public class FileUtil {
      */
     public static void download(String filePath, String fileName, Boolean delete, HttpServletResponse response) throws Exception {
         File file = new File(filePath);
-        if (!file.exists())
+        if (!file.exists()) {
             throw new Exception("文件未找到");
+        }
 
         String fileType = getFileType(file);
         if (!fileTypeIsValid(fileType)) {
@@ -74,8 +75,9 @@ public class FileUtil {
                 os.write(b, 0, length);
             }
         } finally {
-            if (delete)
+            if (delete) {
                 delete(filePath);
+            }
         }
     }
 
@@ -88,7 +90,9 @@ public class FileUtil {
         File file = new File(filePath);
         if (file.isDirectory()) {
             File[] files = file.listFiles();
-            if (files != null) Arrays.stream(files).forEach(f -> delete(f.getPath()));
+            if (files != null) {
+                Arrays.stream(files).forEach(f -> delete(f.getPath()));
+            }
         }
         file.delete();
     }

+ 13 - 9
febs-common/src/main/java/cc/mrbird/febs/common/utils/SortUtil.java

@@ -9,7 +9,7 @@ import org.apache.commons.lang3.StringUtils;
 
 /**
  * 处理排序工具类
- * 
+ *
  * @author MrBird
  */
 public class SortUtil {
@@ -34,16 +34,18 @@ public class SortUtil {
                 && StringUtils.isNotBlank(request.getOrder())
                 && !StringUtils.equalsIgnoreCase(request.getField(), "null")
                 && !StringUtils.equalsIgnoreCase(request.getOrder(), "null")) {
-            if (StringUtils.equals(request.getOrder(), FebsConstant.ORDER_DESC))
+            if (StringUtils.equals(request.getOrder(), FebsConstant.ORDER_DESC)) {
                 page.addOrder(OrderItem.desc(sortField));
-            else
+            } else {
                 page.addOrder(OrderItem.asc(sortField));
+            }
         } else {
             if (StringUtils.isNotBlank(defaultSort)) {
-                if (StringUtils.equals(defaultOrder, FebsConstant.ORDER_DESC))
+                if (StringUtils.equals(defaultOrder, FebsConstant.ORDER_DESC)) {
                     page.addOrder(OrderItem.desc(defaultSort));
-                else
+                } else {
                     page.addOrder(OrderItem.asc(defaultSort));
+                }
             }
         }
     }
@@ -88,16 +90,18 @@ public class SortUtil {
                 && StringUtils.isNotBlank(request.getOrder())
                 && !StringUtils.equalsIgnoreCase(request.getField(), "null")
                 && !StringUtils.equalsIgnoreCase(request.getOrder(), "null")) {
-            if (StringUtils.equals(request.getOrder(), FebsConstant.ORDER_DESC))
+            if (StringUtils.equals(request.getOrder(), FebsConstant.ORDER_DESC)) {
                 wrapper.orderByDesc(sortField);
-            else
+            } else {
                 wrapper.orderByAsc(sortField);
+            }
         } else {
             if (StringUtils.isNotBlank(defaultSort)) {
-                if (StringUtils.equals(defaultOrder, FebsConstant.ORDER_DESC))
+                if (StringUtils.equals(defaultOrder, FebsConstant.ORDER_DESC)) {
                     wrapper.orderByDesc(defaultSort);
-                else
+                } else {
                     wrapper.orderByAsc(defaultSort);
+                }
             }
         }
     }

+ 6 - 3
febs-common/src/main/java/cc/mrbird/febs/common/utils/TreeUtil.java

@@ -33,8 +33,9 @@ public class TreeUtil {
             for (Tree<T> n : nodes) {
                 String id = n.getId();
                 if (id != null && id.equals(pid)) {
-                    if (n.getChildren() == null)
+                    if (n.getChildren() == null) {
                         n.initChildren();
+                    }
                     n.getChildren().add(node);
                     node.setHasParent(true);
                     n.setHasChildren(true);
@@ -42,8 +43,9 @@ public class TreeUtil {
                     return;
                 }
             }
-            if (topNodes.isEmpty())
+            if (topNodes.isEmpty()) {
                 topNodes.add(node);
+            }
         });
         return topNodes;
     }
@@ -71,8 +73,9 @@ public class TreeUtil {
             for (VueRouter<T> parent : routes) {
                 String id = parent.getId();
                 if (id != null && id.equals(parentId)) {
-                    if (parent.getChildren() == null)
+                    if (parent.getChildren() == null) {
                         parent.initChildren();
+                    }
                     parent.getChildren().add(route);
                     parent.setAlwaysShow(true);
                     parent.setHasChildren(true);

+ 3 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/FebsGatewayApplication.java

@@ -3,6 +3,9 @@ package cc.mrbird.febs.gateway;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
+/**
+ * @author MrBird
+ */
 @SpringBootApplication
 public class FebsGatewayApplication {
 

+ 2 - 14
febs-gateway/src/main/java/cc/mrbird/febs/gateway/common/configure/FebsGatewayErrorConfigure.java

@@ -1,7 +1,7 @@
 package cc.mrbird.febs.gateway.common.configure;
 
 import cc.mrbird.febs.gateway.common.handler.FebsGatewayExceptionHandler;
-import org.springframework.beans.factory.ObjectProvider;
+import lombok.RequiredArgsConstructor;
 import org.springframework.boot.autoconfigure.web.ResourceProperties;
 import org.springframework.boot.autoconfigure.web.ServerProperties;
 import org.springframework.boot.web.reactive.error.ErrorAttributes;
@@ -14,13 +14,13 @@ import org.springframework.core.annotation.Order;
 import org.springframework.http.codec.ServerCodecConfigurer;
 import org.springframework.web.reactive.result.view.ViewResolver;
 
-import java.util.Collections;
 import java.util.List;
 
 /**
  * @author MrBird
  */
 @Configuration
+@RequiredArgsConstructor
 public class FebsGatewayErrorConfigure {
 
     private final ServerProperties serverProperties;
@@ -29,18 +29,6 @@ public class FebsGatewayErrorConfigure {
     private final List<ViewResolver> viewResolvers;
     private final ServerCodecConfigurer serverCodecConfigurer;
 
-    public FebsGatewayErrorConfigure(ServerProperties serverProperties,
-                                     ResourceProperties resourceProperties,
-                                     ObjectProvider<List<ViewResolver>> viewResolversProvider,
-                                     ServerCodecConfigurer serverCodecConfigurer,
-                                     ApplicationContext applicationContext) {
-        this.serverProperties = serverProperties;
-        this.applicationContext = applicationContext;
-        this.resourceProperties = resourceProperties;
-        this.viewResolvers = viewResolversProvider.getIfAvailable(Collections::emptyList);
-        this.serverCodecConfigurer = serverCodecConfigurer;
-    }
-
     @Bean
     @Order(Ordered.HIGHEST_PRECEDENCE)
     public ErrorWebExceptionHandler errorWebExceptionHandler(ErrorAttributes errorAttributes) {

+ 4 - 5
febs-gateway/src/main/java/cc/mrbird/febs/gateway/common/filter/FebsGatewayRequestFilter.java

@@ -3,8 +3,8 @@ package cc.mrbird.febs.gateway.common.filter;
 import cc.mrbird.febs.common.entity.constant.FebsConstant;
 import cc.mrbird.febs.gateway.common.properties.FebsGatewayProperties;
 import cc.mrbird.febs.gateway.enhance.service.RouteEnhanceService;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cloud.gateway.filter.GatewayFilterChain;
 import org.springframework.cloud.gateway.filter.GlobalFilter;
@@ -22,12 +22,11 @@ import reactor.core.publisher.Mono;
 @Slf4j
 @Component
 @Order(0)
+@RequiredArgsConstructor
 public class FebsGatewayRequestFilter implements GlobalFilter {
 
-    @Autowired
-    private FebsGatewayProperties properties;
-    @Autowired
-    private RouteEnhanceService routeEnhanceService;
+    private final FebsGatewayProperties properties;
+    private final RouteEnhanceService routeEnhanceService;
 
     @Value("${febs.gateway.enhance:false}")
     private Boolean routeEhance;

+ 6 - 2
febs-gateway/src/main/java/cc/mrbird/febs/gateway/common/runner/StartedUpRunner.java

@@ -1,6 +1,7 @@
 package cc.mrbird.febs.gateway.common.runner;
 
 import cc.mrbird.febs.common.entity.constant.FebsServerConstant;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -11,12 +12,15 @@ import org.springframework.stereotype.Component;
 
 import java.time.LocalDateTime;
 
+/**
+ * @author MrBird
+ */
 @Slf4j
 @Component
+@RequiredArgsConstructor
 public class StartedUpRunner implements ApplicationRunner {
 
-    @Autowired
-    private ConfigurableApplicationContext context;
+    private final ConfigurableApplicationContext context;
 
     @Value("${spring.application.name:'" + FebsServerConstant.FEBS_GATEWAY + "'}")
     private String applicationName;

+ 3 - 3
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/auth/AuthenticationManager.java

@@ -1,8 +1,8 @@
 package cc.mrbird.febs.gateway.enhance.auth;
 
 import io.jsonwebtoken.Claims;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.ReactiveAuthenticationManager;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
@@ -14,10 +14,10 @@ import reactor.core.publisher.Mono;
  * @author MrBird
  */
 @Component
+@RequiredArgsConstructor
 public class AuthenticationManager implements ReactiveAuthenticationManager {
 
-    @Autowired
-    private JWTTokenHelper tokenHelper;
+    private final JwtTokenHelper tokenHelper;
 
     @Override
     public Mono<Authentication> authenticate(Authentication authentication) {

+ 2 - 2
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/auth/JWTTokenHelper.java → febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/auth/JwtTokenHelper.java

@@ -17,7 +17,7 @@ import java.util.Map;
  * @author MrBird
  */
 @Component
-public class JWTTokenHelper implements Serializable {
+public class JwtTokenHelper implements Serializable {
 
     private static final long serialVersionUID = 1579222883969867182L;
 
@@ -48,7 +48,7 @@ public class JWTTokenHelper implements Serializable {
     }
 
     public String generateToken(RouteUser routeUser) {
-        Map<String, Object> claims = new HashMap<>();
+        Map<String, Object> claims = new HashMap<>(1);
         claims.put("permission", routeUser.getRoles());
         return doGenerateToken(claims, routeUser.getUsername());
     }

+ 4 - 6
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/auth/SecurityConfigure.java

@@ -1,6 +1,6 @@
 package cc.mrbird.febs.gateway.enhance.auth;
 
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.HttpMethod;
@@ -19,13 +19,11 @@ import reactor.core.publisher.Mono;
 @Configuration
 @EnableWebFluxSecurity
 @EnableReactiveMethodSecurity
+@RequiredArgsConstructor
 public class SecurityConfigure {
 
-    @Autowired
-    private AuthenticationManager authenticationManager;
-
-    @Autowired
-    private SecurityContextRepository securityContextRepository;
+    private final AuthenticationManager authenticationManager;
+    private final SecurityContextRepository securityContextRepository;
 
     @Bean
     public PasswordEncoder passwordEncoder(){

+ 3 - 3
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/auth/SecurityContextRepository.java

@@ -1,8 +1,8 @@
 package cc.mrbird.febs.gateway.enhance.auth;
 
 import cc.mrbird.febs.common.entity.constant.FebsConstant;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -18,10 +18,10 @@ import reactor.core.publisher.Mono;
  * @author MrBird
  */
 @Component
+@RequiredArgsConstructor
 public class SecurityContextRepository implements ServerSecurityContextRepository {
 
-    @Autowired
-    private AuthenticationManager authenticationManager;
+    private final AuthenticationManager authenticationManager;
 
     @Override
     public Mono<Void> save(ServerWebExchange serverWebExchange, SecurityContext securityContext) {

+ 7 - 2
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/configure/FebsRouteEnhanceConfigure.java

@@ -3,6 +3,9 @@ package cc.mrbird.febs.gateway.enhance.configure;
 import cc.mrbird.febs.common.annotation.EnableFebsLettuceRedis;
 import cc.mrbird.febs.common.entity.constant.FebsConstant;
 import cc.mrbird.febs.gateway.enhance.runner.FebsRouteEnhanceRunner;
+import cc.mrbird.febs.gateway.enhance.service.BlackListService;
+import cc.mrbird.febs.gateway.enhance.service.RateLimitRuleService;
+import cc.mrbird.febs.gateway.enhance.service.RouteEnhanceCacheService;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
@@ -39,7 +42,9 @@ public class FebsRouteEnhanceConfigure {
     }
 
     @Bean
-    public ApplicationRunner febsRoutenEhanceRunner() {
-        return new FebsRouteEnhanceRunner();
+    public ApplicationRunner febsRoutenEhanceRunner(RouteEnhanceCacheService cacheService,
+                                                    BlackListService blackListService,
+                                                    RateLimitRuleService rateLimitRuleService) {
+        return new FebsRouteEnhanceRunner(cacheService, blackListService, rateLimitRuleService);
     }
 }

+ 3 - 3
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/BlackListController.java

@@ -3,7 +3,7 @@ package cc.mrbird.febs.gateway.enhance.controller;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.gateway.enhance.entity.BlackList;
 import cc.mrbird.febs.gateway.enhance.service.BlackListService;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import reactor.core.publisher.Flux;
@@ -13,11 +13,11 @@ import reactor.core.publisher.Mono;
  * @author MrBird
  */
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("route/auth/blackList")
 public class BlackListController {
 
-    @Autowired
-    private BlackListService blackListService;
+    private final BlackListService blackListService;
 
     @GetMapping("data")
     public Flux<BlackList> findUserPages(QueryRequest request, BlackList blackList) {

+ 3 - 3
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/BlockLogController.java

@@ -3,7 +3,7 @@ package cc.mrbird.febs.gateway.enhance.controller;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.gateway.enhance.entity.BlockLog;
 import cc.mrbird.febs.gateway.enhance.service.BlockLogService;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -16,11 +16,11 @@ import reactor.core.publisher.Mono;
  * @author MrBird
  */
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("route/auth/blockLog")
 public class BlockLogController {
 
-    @Autowired
-    private BlockLogService blockLogService;
+    private final BlockLogService blockLogService;
 
     @GetMapping("data")
     public Flux<BlockLog> findUserPages(QueryRequest request, BlockLog blockLog) {

+ 3 - 3
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/RateLimitLogController.java

@@ -3,7 +3,7 @@ package cc.mrbird.febs.gateway.enhance.controller;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.gateway.enhance.entity.RateLimitLog;
 import cc.mrbird.febs.gateway.enhance.service.RateLimitLogService;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -16,11 +16,11 @@ import reactor.core.publisher.Mono;
  * @author MrBird
  */
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("route/auth/rateLimitLog")
 public class RateLimitLogController {
 
-    @Autowired
-    private RateLimitLogService rateLimitLogService;
+    private final RateLimitLogService rateLimitLogService;
 
     @GetMapping("data")
     public Flux<RateLimitLog> findUserPages(QueryRequest request, RateLimitLog rateLimitLog) {

+ 3 - 3
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/RateLimitRuleController.java

@@ -3,7 +3,7 @@ package cc.mrbird.febs.gateway.enhance.controller;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.gateway.enhance.entity.RateLimitRule;
 import cc.mrbird.febs.gateway.enhance.service.RateLimitRuleService;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import reactor.core.publisher.Flux;
@@ -13,11 +13,11 @@ import reactor.core.publisher.Mono;
  * @author MrBird
  */
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("route/auth/rateLimitRule")
 public class RateLimitRuleController {
 
-    @Autowired
-    private RateLimitRuleService rateLimitRuleService;
+    private final RateLimitRuleService rateLimitRuleService;
 
     @GetMapping("data")
     public Flux<RateLimitRule> findUserPages(QueryRequest request, RateLimitRule rateLimitRule) {

+ 3 - 3
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/RouteLogController.java

@@ -3,7 +3,7 @@ package cc.mrbird.febs.gateway.enhance.controller;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.gateway.enhance.entity.RouteLog;
 import cc.mrbird.febs.gateway.enhance.service.RouteLogService;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -16,11 +16,11 @@ import reactor.core.publisher.Mono;
  * @author MrBird
  */
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("route/auth/log")
 public class RouteLogController {
 
-    @Autowired
-    private RouteLogService routeLogService;
+    private final RouteLogService routeLogService;
 
     @GetMapping("data")
     public Flux<RouteLog> findRouteLogsPages(QueryRequest request, RouteLog routeLog) {

+ 6 - 8
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/RouteLoginController.java

@@ -1,9 +1,9 @@
 package cc.mrbird.febs.gateway.enhance.controller;
 
 import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.gateway.enhance.auth.JWTTokenHelper;
+import cc.mrbird.febs.gateway.enhance.auth.JwtTokenHelper;
 import cc.mrbird.febs.gateway.enhance.service.RouteUserService;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.crypto.password.PasswordEncoder;
@@ -16,15 +16,13 @@ import reactor.core.publisher.Mono;
  * @author MrBird
  */
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("route")
 public class RouteLoginController {
 
-    @Autowired
-    private JWTTokenHelper tokenHelper;
-    @Autowired
-    private PasswordEncoder passwordEncoder;
-    @Autowired
-    private RouteUserService routeUserService;
+    private final JwtTokenHelper tokenHelper;
+    private final PasswordEncoder passwordEncoder;
+    private final RouteUserService routeUserService;
 
     @GetMapping("login")
     public Mono<ResponseEntity<FebsResponse>> login(String username, String password) {

+ 3 - 4
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/controller/RouteUserController.java

@@ -3,7 +3,7 @@ package cc.mrbird.febs.gateway.enhance.controller;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.gateway.enhance.entity.RouteUser;
 import cc.mrbird.febs.gateway.enhance.service.RouteUserService;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import reactor.core.publisher.Flux;
@@ -13,12 +13,11 @@ import reactor.core.publisher.Mono;
  * @author MrBird
  */
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("route/auth/user")
 public class RouteUserController {
 
-    @Autowired
-    private RouteUserService routeUserService;
-
+    private final RouteUserService routeUserService;
 
     @GetMapping("data")
     public Flux<RouteUser> findUserPages(QueryRequest request, RouteUser routeUser) {

+ 24 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/BlackListMapper.java

@@ -5,13 +5,37 @@ import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
 import org.springframework.stereotype.Repository;
 import reactor.core.publisher.Flux;
 
+/**
+ * @author MrBird
+ */
 @Repository
 public interface BlackListMapper extends ReactiveMongoRepository<BlackList, String> {
 
+    /**
+     * 删除黑名单
+     *
+     * @param ids 黑名单id
+     * @return 被删除的黑名单
+     */
     Flux<BlackList> deleteByIdIn(String[] ids);
 
+    /**
+     * 查询黑名单
+     *
+     * @param ip            ip
+     * @param requestUri    requestUri
+     * @param requestMethod requestMethod
+     * @return 黑名单
+     */
     Flux<BlackList> findByIpAndRequestUriAndRequestMethod(String ip, String requestUri, String requestMethod);
 
+    /**
+     * 查询黑名单
+     *
+     * @param requestUri    requestUri
+     * @param requestMethod requestMethod
+     * @return 黑名单
+     */
     Flux<BlackList> findByRequestUriAndRequestMethod(String requestUri, String requestMethod);
 
 }

+ 6 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/BlockLogMapper.java

@@ -9,5 +9,11 @@ import reactor.core.publisher.Flux;
  */
 public interface BlockLogMapper extends ReactiveMongoRepository<BlockLog, String> {
 
+    /**
+     * 删除拦截日志
+     *
+     * @param ids 日志id
+     * @return 被删除的拦截日志
+     */
     Flux<BlockLog> deleteByIdIn(String[] ids);
 }

+ 9 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/RateLimitLogMapper.java

@@ -5,8 +5,17 @@ import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
 import org.springframework.stereotype.Repository;
 import reactor.core.publisher.Flux;
 
+/**
+ * @author MrBird
+ */
 @Repository
 public interface RateLimitLogMapper extends ReactiveMongoRepository<RateLimitLog, String> {
 
+    /**
+     * 删除限流日志
+     *
+     * @param ids 限流日志id
+     * @return 被删除的限流日志
+     */
     Flux<RateLimitLog> deleteByIdIn(String[] ids);
 }

+ 16 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/RateLimitRuleMapper.java

@@ -5,10 +5,26 @@ import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
 import org.springframework.stereotype.Repository;
 import reactor.core.publisher.Flux;
 
+/**
+ * @author MrBird
+ */
 @Repository
 public interface RateLimitRuleMapper extends ReactiveMongoRepository<RateLimitRule, String> {
 
+    /**
+     * 删除限流规则
+     *
+     * @param ids 限流规则id
+     * @return 被删除的限流规则
+     */
     Flux<RateLimitRule> deleteByIdIn(String[] ids);
 
+    /**
+     * 删除限流规则
+     *
+     * @param requestUri    requestUri
+     * @param requestMethod requestMethod
+     * @return 被删除的限流规则
+     */
     Flux<RateLimitRule> findByRequestUriAndRequestMethod(String requestUri, String requestMethod);
 }

+ 6 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/RouteLogMapper.java

@@ -11,5 +11,11 @@ import reactor.core.publisher.Flux;
 @Repository
 public interface RouteLogMapper extends ReactiveMongoRepository<RouteLog, String> {
 
+    /**
+     * 删除路由日志
+     *
+     * @param ids 路由日志id
+     * @return 被删除的路由日志
+     */
     Flux<RouteLog> deleteByIdIn(String[] ids);
 }

+ 15 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/mapper/RouteUserMapper.java

@@ -6,10 +6,25 @@ import org.springframework.stereotype.Repository;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
+/**
+ * @author MrBird
+ */
 @Repository
 public interface RouteUserMapper extends ReactiveMongoRepository<RouteUser, String> {
 
+    /**
+     * 查询路由用户
+     *
+     * @param username 用户名
+     * @return 路由用户
+     */
     Mono<RouteUser> findByUsername(String username);
 
+    /**
+     * 删除路由用户
+     *
+     * @param ids 路由用户id
+     * @return 被删除的路由用户
+     */
     Flux<RouteUser> deleteByIdIn(String[] ids);
 }

+ 6 - 7
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/runner/FebsRouteEnhanceRunner.java

@@ -3,8 +3,9 @@ package cc.mrbird.febs.gateway.enhance.runner;
 import cc.mrbird.febs.gateway.enhance.service.BlackListService;
 import cc.mrbird.febs.gateway.enhance.service.RateLimitRuleService;
 import cc.mrbird.febs.gateway.enhance.service.RouteEnhanceCacheService;
+import lombok.NoArgsConstructor;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 
@@ -12,14 +13,12 @@ import org.springframework.boot.ApplicationRunner;
  * @author MrBird
  */
 @Slf4j
+@RequiredArgsConstructor
 public class FebsRouteEnhanceRunner implements ApplicationRunner {
 
-    @Autowired
-    private RouteEnhanceCacheService cacheService;
-    @Autowired
-    private BlackListService blackListService;
-    @Autowired
-    private RateLimitRuleService rateLimitRuleService;
+    private final RouteEnhanceCacheService cacheService;
+    private final BlackListService blackListService;
+    private final RateLimitRuleService rateLimitRuleService;
 
     @Override
     public void run(ApplicationArguments args) {

+ 47 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/BlackListService.java

@@ -5,20 +5,67 @@ import cc.mrbird.febs.gateway.enhance.entity.BlackList;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
+/**
+ * @author MrBird
+ */
 public interface BlackListService {
 
+    /**
+     * 查找所有黑名单列表
+     *
+     * @return 黑名单列表
+     */
     Flux<BlackList> findAll();
 
+    /**
+     * 创建黑名单
+     *
+     * @param blackList 黑名单
+     * @return 黑名单
+     */
     Mono<BlackList> create(BlackList blackList);
 
+    /**
+     * 更新黑名单
+     *
+     * @param blackList 黑名单
+     * @return 黑名单
+     */
     Mono<BlackList> update(BlackList blackList);
 
+    /**
+     * 删除黑名单
+     *
+     * @param ids 黑名单id
+     * @return 被删除的黑名单
+     */
     Flux<BlackList> delete(String ids);
 
+    /**
+     * 黑名单分页数据
+     *
+     * @param request   request
+     * @param blackList blackList
+     * @return 黑名单分页数据
+     */
     Flux<BlackList> findPages(QueryRequest request, BlackList blackList);
 
+    /**
+     * 黑名单分页count
+     *
+     * @param blackList blackList
+     * @return count
+     */
     Mono<Long> findCount(BlackList blackList);
 
+    /**
+     * 查找黑名单
+     *
+     * @param ip            ip
+     * @param requestUri    requestUri
+     * @param requestMethod requestMethod
+     * @return 黑名单
+     */
     Flux<BlackList> findByCondition(String ip, String requestUri, String requestMethod);
 
 }

+ 28 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/BlockLogService.java

@@ -5,13 +5,41 @@ import cc.mrbird.febs.gateway.enhance.entity.BlockLog;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
+/**
+ * @author MrBird
+ */
 public interface BlockLogService {
 
+    /**
+     * 创建拦截日志
+     *
+     * @param blockLog 拦截日志
+     * @return 拦截日志
+     */
     Mono<BlockLog> create(BlockLog blockLog);
 
+    /**
+     * 删除拦截日志
+     *
+     * @param ids 拦截日志id
+     * @return 被删除的拦截日志
+     */
     Flux<BlockLog> delete(String ids);
 
+    /**
+     * 查找拦截日志分页数据
+     *
+     * @param request  request
+     * @param blockLog blockLog
+     * @return 拦截日志分页数据
+     */
     Flux<BlockLog> findPages(QueryRequest request, BlockLog blockLog);
 
+    /**
+     * 查找拦截日志分页数据count
+     *
+     * @param blockLog blockLog
+     * @return count
+     */
     Mono<Long> findCount(BlockLog blockLog);
 }

+ 26 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RateLimitLogService.java

@@ -9,11 +9,37 @@ import reactor.core.publisher.Mono;
  * @author MrBird
  */
 public interface RateLimitLogService {
+
+    /**
+     * 创建限流日志
+     *
+     * @param rateLimitLog 限流日志
+     * @return 限流日志
+     */
     Mono<RateLimitLog> create(RateLimitLog rateLimitLog);
 
+    /**
+     * 删除限流日志
+     *
+     * @param ids 限流日志id
+     * @return 被删除的限流日志
+     */
     Flux<RateLimitLog> delete(String ids);
 
+    /**
+     * 查找限流日志分页数据
+     *
+     * @param request      request
+     * @param rateLimitLog rateLimitLog
+     * @return 限流日志分页数据
+     */
     Flux<RateLimitLog> findPages(QueryRequest request, RateLimitLog rateLimitLog);
 
+    /**
+     * 查找限流日志分页数据count
+     *
+     * @param rateLimitLog rateLimitLog
+     * @return 限流日志分页数据count
+     */
     Mono<Long> findCount(RateLimitLog rateLimitLog);
 }

+ 46 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RateLimitRuleService.java

@@ -5,19 +5,65 @@ import cc.mrbird.febs.gateway.enhance.entity.RateLimitRule;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
+/**
+ * @author MrBird
+ */
 public interface RateLimitRuleService {
 
+    /**
+     * 创建限流规则
+     *
+     * @param rateLimitRule 限流规则
+     * @return 先例规则
+     */
     Mono<RateLimitRule> create(RateLimitRule rateLimitRule);
 
+    /**
+     * 查找所有限流规则
+     *
+     * @return 限流规则
+     */
     Flux<RateLimitRule> findAll();
 
+    /**
+     * 查找限流规则
+     *
+     * @param requestUri    requestUri
+     * @param requestMethod requestMethod
+     * @return 限流规则
+     */
     Flux<RateLimitRule> findByRequestUriAndRequestMethod(String requestUri, String requestMethod);
 
+    /**
+     * 获取限流规则分页数据
+     *
+     * @param request       request
+     * @param rateLimitRule rateLimitRule
+     * @return 限流规则分页数据
+     */
     Flux<RateLimitRule> findPages(QueryRequest request, RateLimitRule rateLimitRule);
 
+    /**
+     * 限流规则分页count
+     *
+     * @param rateLimitRule rateLimitRule
+     * @return count
+     */
     Mono<Long> findCount(RateLimitRule rateLimitRule);
 
+    /**
+     * 更新限流规则
+     *
+     * @param rateLimitRule rateLimitRule
+     * @return 被更新的限流规则
+     */
     Mono<RateLimitRule> update(RateLimitRule rateLimitRule);
 
+    /**
+     * 删除限流规则
+     *
+     * @param ids 限流规则id
+     * @return 被删除的限流规则
+     */
     Flux<RateLimitRule> delete(String ids);
 }

+ 71 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RouteEnhanceCacheService.java

@@ -6,29 +6,100 @@ import reactor.core.publisher.Flux;
 
 import java.util.Set;
 
+/**
+ * @author MrBird
+ */
 public interface RouteEnhanceCacheService {
 
+    /**
+     * 缓存所有黑名单规则
+     *
+     * @param blackList 黑名单列表
+     */
     void saveAllBlackList(Flux<BlackList> blackList);
 
+    /**
+     * 删除黑名单规则缓存
+     *
+     * @param blackList 黑名单
+     */
     void removeBlackList(BlackList blackList);
 
+    /**
+     * 缓存所有限流规则
+     *
+     * @param rateLimitRules 限流规则列表
+     */
     void saveAllRateLimitRules(Flux<RateLimitRule> rateLimitRules);
 
+    /**
+     * 缓存黑名单规则
+     *
+     * @param blackList 黑名单规则
+     */
     void saveBlackList(BlackList blackList);
 
+    /**
+     * 从缓存中获取黑名单规则
+     *
+     * @param ip ip
+     * @return 黑名单
+     */
     Set<Object> getBlackList(String ip);
 
+    /**
+     * 从缓存中获取黑名单规则
+     *
+     * @return 黑名单
+     */
     Set<Object> getBlackList();
 
+    /**
+     * 缓存限流规则
+     *
+     * @param rateLimitRule 限流规则
+     */
     void saveRateLimitRule(RateLimitRule rateLimitRule);
 
+    /**
+     * 从缓存中获取限流规则
+     *
+     * @param uri    uri
+     * @param method method
+     * @return 限流规则
+     */
     Object getRateLimitRule(String uri, String method);
 
+    /**
+     * 获取当前请求次数
+     *
+     * @param uri uri
+     * @param ip  ip
+     * @return 次数
+     */
     int getCurrentRequestCount(String uri, String ip);
 
+    /**
+     * 从缓存中删除限流规则
+     *
+     * @param rateLimitRule 限流规则
+     */
     void removeRateLimitRule(RateLimitRule rateLimitRule);
 
+    /**
+     * 设置请求次数
+     *
+     * @param uri  uri
+     * @param ip   ip
+     * @param time time
+     */
     void setCurrentRequestCount(String uri, String ip, Long time);
 
+    /**
+     * 递增请求次数
+     *
+     * @param uri uri
+     * @param ip  ip
+     */
     void incrCurrentRequestCount(String uri, String ip);
 }

+ 27 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RouteEnhanceService.java

@@ -10,16 +10,43 @@ import reactor.core.publisher.Mono;
  */
 public interface RouteEnhanceService {
 
+    /**
+     * 根据黑名单规则进行过滤
+     *
+     * @param exchange ServerWebExchange
+     * @return Mono<Void>
+     */
     Mono<Void> filterBalckList(ServerWebExchange exchange);
 
+    /**
+     * 根据限流规则进行过滤
+     *
+     * @param exchange ServerWebExchange
+     * @return Mono<Void>
+     */
     Mono<Void> filterRateLimit(ServerWebExchange exchange);
 
+    /**
+     * 异步存储请求日志
+     *
+     * @param exchange ServerWebExchange
+     */
     @Async(FebsConstant.ASYNC_POOL)
     void saveRequestLogs(ServerWebExchange exchange);
 
+    /**
+     * 异步存储拦截日志
+     *
+     * @param exchange ServerWebExchange
+     */
     @Async(FebsConstant.ASYNC_POOL)
     void saveBlockLogs(ServerWebExchange exchange);
 
+    /**
+     * 异步存储限流日志
+     *
+     * @param exchange ServerWebExchange
+     */
     @Async(FebsConstant.ASYNC_POOL)
     void saveRateLimitLogs(ServerWebExchange exchange);
 }

+ 33 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RouteLogService.java

@@ -5,15 +5,48 @@ import cc.mrbird.febs.gateway.enhance.entity.RouteLog;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
+/**
+ * @author MrBird
+ */
 public interface RouteLogService {
 
+    /**
+     * 查找所有路由日志
+     *
+     * @return 路有日志列表
+     */
     Flux<RouteLog> findAll();
 
+    /**
+     * 创建路由日志
+     *
+     * @param routeLog 路由日志
+     * @return 路由日志
+     */
     Mono<RouteLog> create(RouteLog routeLog);
 
+    /**
+     * 删除路由日志
+     *
+     * @param ids 路由日志id
+     * @return 被删除的路由日志
+     */
     Flux<RouteLog> delete(String ids);
 
+    /**
+     * 查找路由日志分页数据
+     *
+     * @param request  request
+     * @param routeLog routeLog
+     * @return 路由日志分页数据
+     */
     Flux<RouteLog> findPages(QueryRequest request, RouteLog routeLog);
 
+    /**
+     * 查找路由分页数据count
+     *
+     * @param routeLog routeLog
+     * @return count
+     */
     Mono<Long> findCount(RouteLog routeLog);
 }

+ 41 - 0
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/RouteUserService.java

@@ -5,16 +5,57 @@ import cc.mrbird.febs.gateway.enhance.entity.RouteUser;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
+/**
+ * @author MrBird
+ */
 public interface RouteUserService {
+
+    /**
+     * 创建路由用户
+     *
+     * @param user 路由用户
+     * @return 路由用户
+     */
     Mono<RouteUser> create(RouteUser user);
 
+    /**
+     * 更新路由用户
+     *
+     * @param routeUser 路由用户
+     * @return 路由用户
+     */
     Mono<RouteUser> update(RouteUser routeUser);
 
+    /**
+     * 删除路由用户
+     *
+     * @param ids 路由用户id
+     * @return 被删除的路由用户
+     */
     Flux<RouteUser> delete(String ids);
 
+    /**
+     * 根据用户名获取路由用户
+     *
+     * @param username 用户名
+     * @return 路由用户
+     */
     Mono<RouteUser> findByUsername(String username);
 
+    /**
+     * 查找路由用户分页数据
+     *
+     * @param request   request
+     * @param routeUser routeUser
+     * @return 路由用户分页数据
+     */
     Flux<RouteUser> findPages(QueryRequest request, RouteUser routeUser);
 
+    /**
+     * 查找路由用户分页数据count
+     *
+     * @param routeUser routeUser
+     * @return count
+     */
     Mono<Long> findCount(RouteUser routeUser);
 }

+ 17 - 7
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/BlackListServiceImpl.java

@@ -8,6 +8,7 @@ import cc.mrbird.febs.gateway.enhance.service.BlackListService;
 import cc.mrbird.febs.gateway.enhance.service.RouteEnhanceCacheService;
 import cc.mrbird.febs.gateway.enhance.utils.AddressUtil;
 import cc.mrbird.febs.gateway.enhance.utils.PageableExecutionUtil;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,14 +25,22 @@ import java.time.LocalDateTime;
  * @author MrBird
  */
 @Service
+@RequiredArgsConstructor
 public class BlackListServiceImpl implements BlackListService {
 
-    @Autowired(required = false)
+
     private BlackListMapper blackListMapper;
-    @Autowired(required = false)
     private ReactiveMongoTemplate template;
-    @Autowired
-    private RouteEnhanceCacheService routeEnhanceCacheService;
+
+    @Autowired(required = false)
+    public void setBlackListMapper(BlackListMapper blackListMapper) {
+        this.blackListMapper = blackListMapper;
+    }
+    @Autowired(required = false)
+    public void setTemplate(ReactiveMongoTemplate template) {
+        this.template = template;
+    }
+    private final RouteEnhanceCacheService routeEnhanceCacheService;
 
     @Override
     public Flux<BlackList> findAll() {
@@ -41,8 +50,9 @@ public class BlackListServiceImpl implements BlackListService {
     @Override
     public Mono<BlackList> create(BlackList blackList) {
         blackList.setCreateTime(DateUtil.formatFullTime(LocalDateTime.now(), DateUtil.FULL_TIME_SPLIT_PATTERN));
-        if (StringUtils.isNotBlank(blackList.getIp()))
+        if (StringUtils.isNotBlank(blackList.getIp())) {
             blackList.setLocation(AddressUtil.getCityInfo(blackList.getIp()));
+        }
         return blackListMapper.insert(blackList).doOnSuccess(b -> routeEnhanceCacheService.saveBlackList(blackList));
     }
 
@@ -53,14 +63,14 @@ public class BlackListServiceImpl implements BlackListService {
                     routeEnhanceCacheService.removeBlackList(b);
                     BeanUtils.copyProperties(blackList, b);
                     return this.blackListMapper.save(b);
-                }).doOnSuccess(b -> routeEnhanceCacheService.saveBlackList(b));
+                }).doOnSuccess(routeEnhanceCacheService::saveBlackList);
     }
 
     @Override
     public Flux<BlackList> delete(String ids) {
         String[] idArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(ids, ",");
         return blackListMapper.deleteByIdIn(idArray)
-                .doOnNext(b -> routeEnhanceCacheService.removeBlackList(b));
+                .doOnNext(routeEnhanceCacheService::removeBlackList);
     }
 
     @Override

+ 9 - 2
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/BlockLogServiceImpl.java

@@ -24,11 +24,18 @@ import java.time.LocalDateTime;
 @Service
 public class BlockLogServiceImpl implements BlockLogService {
 
-    @Autowired(required = false)
     private BlockLogMapper blockLogMapper;
-    @Autowired(required = false)
     private ReactiveMongoTemplate template;
 
+    @Autowired(required = false)
+    public void setBlockLogMapper(BlockLogMapper blockLogMapper) {
+        this.blockLogMapper = blockLogMapper;
+    }
+    @Autowired(required = false)
+    public void setTemplate(ReactiveMongoTemplate template) {
+        this.template = template;
+    }
+
     @Override
     public Mono<BlockLog> create(BlockLog blockLog) {
         blockLog.setCreateTime(DateUtil.formatFullTime(LocalDateTime.now(), DateUtil.FULL_TIME_SPLIT_PATTERN));

+ 9 - 2
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RateLimitLogServiceImpl.java

@@ -24,11 +24,18 @@ import java.time.LocalDateTime;
 @Service
 public class RateLimitLogServiceImpl implements RateLimitLogService {
 
-    @Autowired(required = false)
     private RateLimitLogMapper rateLimitLogMapper;
-    @Autowired(required = false)
     private ReactiveMongoTemplate template;
 
+    @Autowired(required = false)
+    public void setRateLimitLogMapper(RateLimitLogMapper rateLimitLogMapper) {
+        this.rateLimitLogMapper = rateLimitLogMapper;
+    }
+    @Autowired(required = false)
+    public void setTemplate(ReactiveMongoTemplate template) {
+        this.template = template;
+    }
+
     @Override
     public Mono<RateLimitLog> create(RateLimitLog rateLimitLog) {
         rateLimitLog.setCreateTime(DateUtil.formatFullTime(LocalDateTime.now(), DateUtil.FULL_TIME_SPLIT_PATTERN));

+ 16 - 7
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RateLimitRuleServiceImpl.java

@@ -7,6 +7,7 @@ import cc.mrbird.febs.gateway.enhance.mapper.RateLimitRuleMapper;
 import cc.mrbird.febs.gateway.enhance.service.RateLimitRuleService;
 import cc.mrbird.febs.gateway.enhance.service.RouteEnhanceCacheService;
 import cc.mrbird.febs.gateway.enhance.utils.PageableExecutionUtil;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,15 +24,23 @@ import java.time.LocalDateTime;
  * @author MrBird
  */
 @Service
+@RequiredArgsConstructor
 public class RateLimitRuleServiceImpl implements RateLimitRuleService {
 
-    @Autowired(required = false)
     private RateLimitRuleMapper rateLimitRuleMapper;
-    @Autowired(required = false)
     private ReactiveMongoTemplate template;
-    @Autowired
-    private RouteEnhanceCacheService routeEnhanceCacheService;
 
+    @Autowired(required = false)
+    public void setRateLimitRuleMapper(RateLimitRuleMapper rateLimitRuleMapper) {
+        this.rateLimitRuleMapper = rateLimitRuleMapper;
+    }
+
+    @Autowired(required = false)
+    public void setTemplate(ReactiveMongoTemplate template) {
+        this.template = template;
+    }
+
+    private final RouteEnhanceCacheService routeEnhanceCacheService;
 
     @Override
     public Flux<RateLimitRule> findAll() {
@@ -59,7 +68,7 @@ public class RateLimitRuleServiceImpl implements RateLimitRuleService {
     public Mono<RateLimitRule> create(RateLimitRule rateLimitRule) {
         rateLimitRule.setCreateTime(DateUtil.formatFullTime(LocalDateTime.now(), DateUtil.FULL_TIME_SPLIT_PATTERN));
         return rateLimitRuleMapper.insert(rateLimitRule)
-                .doOnSuccess(r -> routeEnhanceCacheService.saveRateLimitRule(r));
+                .doOnSuccess(routeEnhanceCacheService::saveRateLimitRule);
     }
 
     @Override
@@ -69,14 +78,14 @@ public class RateLimitRuleServiceImpl implements RateLimitRuleService {
                     routeEnhanceCacheService.removeRateLimitRule(r);
                     BeanUtils.copyProperties(rateLimitRule, r);
                     return this.rateLimitRuleMapper.save(r);
-                }).doOnSuccess(r -> routeEnhanceCacheService.saveRateLimitRule(r));
+                }).doOnSuccess(routeEnhanceCacheService::saveRateLimitRule);
     }
 
     @Override
     public Flux<RateLimitRule> delete(String ids) {
         String[] idArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(ids, ",");
         return rateLimitRuleMapper.deleteByIdIn(idArray)
-                .doOnNext(r -> routeEnhanceCacheService.removeRateLimitRule(r));
+                .doOnNext(routeEnhanceCacheService::removeRateLimitRule);
     }
 
     private Query getQuery(RateLimitRule rateLimitRule) {

+ 5 - 1
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RouteEnhanceCacheServiceImpl.java

@@ -21,9 +21,13 @@ import java.util.Set;
 @Service
 public class RouteEnhanceCacheServiceImpl implements RouteEnhanceCacheService {
 
-    @Autowired(required = false)
     private RedisService redisService;
 
+    @Autowired(required = false)
+    public void setRedisService(RedisService redisService) {
+        this.redisService = redisService;
+    }
+
     @Override
     public void saveAllBlackList(Flux<BlackList> blackList) {
         blackList.subscribe(b -> {

+ 29 - 19
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RouteEnhanceServiceImpl.java

@@ -8,9 +8,9 @@ import cc.mrbird.febs.gateway.enhance.service.*;
 import cc.mrbird.febs.gateway.enhance.utils.AddressUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.base.Stopwatch;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.gateway.route.Route;
 import org.springframework.cloud.gateway.support.ServerWebExchangeUtils;
 import org.springframework.http.HttpStatus;
@@ -33,19 +33,17 @@ import java.util.concurrent.atomic.AtomicBoolean;
  */
 @Slf4j
 @Service
+@RequiredArgsConstructor
 public class RouteEnhanceServiceImpl implements RouteEnhanceService {
 
-    @Autowired
-    private RouteLogService routeLogService;
-    @Autowired
-    private BlockLogService blockLogService;
-    @Autowired
-    private RateLimitLogService rateLimitLogService;
-    @Autowired
-    private RouteEnhanceCacheService routeEnhanceCacheService;
+    private final RouteLogService routeLogService;
+    private final BlockLogService blockLogService;
+    private final RateLimitLogService rateLimitLogService;
+    private final RouteEnhanceCacheService routeEnhanceCacheService;
 
     private AntPathMatcher pathMatcher = new AntPathMatcher();
     private static final String METHOD_ALL = "ALL";
+    private static final String TOKEN_CHECK_URL = "/auth/user";
 
     @Override
     public Mono<Void> filterBalckList(ServerWebExchange exchange) {
@@ -89,12 +87,16 @@ public class RouteEnhanceServiceImpl implements RouteEnhanceService {
                 String requestMethod = request.getMethodValue();
                 AtomicBoolean limit = new AtomicBoolean(false);
                 Object o = routeEnhanceCacheService.getRateLimitRule(originUri.getPath(), METHOD_ALL);
-                if (o == null) o = routeEnhanceCacheService.getRateLimitRule(originUri.getPath(), requestMethod);
+                if (o == null) {
+                    o = routeEnhanceCacheService.getRateLimitRule(originUri.getPath(), requestMethod);
+                }
                 if (o != null) {
                     RateLimitRule rule = JSONObject.parseObject(o.toString(), RateLimitRule.class);
                     Mono<Void> result = doRateLimitCheck(limit, rule, originUri, requestIp, requestMethod, response);
                     log.info("Rate limit verification completed - {}", stopwatch.stop());
-                    if (result != null) return result;
+                    if (result != null) {
+                        return result;
+                    }
                 }
             } else {
                 log.info("Request IP not obtained, no rate limit filter - {}", stopwatch.stop());
@@ -109,7 +111,7 @@ public class RouteEnhanceServiceImpl implements RouteEnhanceService {
     public void saveRequestLogs(ServerWebExchange exchange) {
         URI originUri = getGatewayOriginalRequestUrl(exchange);
         // /auth/user为令牌校验请求,是系统自发行为,非用户请求,故不记录
-        if (!StringUtils.equalsIgnoreCase("/auth/user", originUri.getPath())) {
+        if (!StringUtils.equalsIgnoreCase(TOKEN_CHECK_URL, originUri.getPath())) {
             URI url = getGatewayRequestUrl(exchange);
             Route route = getGatewayRoute(exchange);
             ServerHttpRequest request = exchange.getRequest();
@@ -167,14 +169,17 @@ public class RouteEnhanceServiceImpl implements RouteEnhanceService {
                 if (BlackList.METHOD_ALL.equalsIgnoreCase(b.getRequestMethod())
                         || StringUtils.equalsIgnoreCase(requestMethod, b.getRequestMethod())) {
                     if (StringUtils.isNotBlank(b.getLimitFrom()) && StringUtils.isNotBlank(b.getLimitTo())) {
-                        if (DateUtil.between(LocalTime.parse(b.getLimitFrom()), LocalTime.parse(b.getLimitTo())))
+                        if (DateUtil.between(LocalTime.parse(b.getLimitFrom()), LocalTime.parse(b.getLimitTo()))) {
                             forbid.set(true);
+                        }
                     } else {
                         forbid.set(true);
                     }
                 }
             }
-            if (forbid.get()) break;
+            if (forbid.get()) {
+                break;
+            }
         }
     }
 
@@ -184,8 +189,9 @@ public class RouteEnhanceServiceImpl implements RouteEnhanceService {
                 && (BlackList.METHOD_ALL.equalsIgnoreCase(rule.getRequestMethod())
                 || StringUtils.equalsIgnoreCase(requestMethod, rule.getRequestMethod()))) {
             if (StringUtils.isNotBlank(rule.getLimitFrom()) && StringUtils.isNotBlank(rule.getLimitTo())) {
-                if (DateUtil.between(LocalTime.parse(rule.getLimitFrom()), LocalTime.parse(rule.getLimitTo())))
+                if (DateUtil.between(LocalTime.parse(rule.getLimitFrom()), LocalTime.parse(rule.getLimitTo()))) {
                     limit.set(true);
+                }
             } else {
                 limit.set(true);
             }
@@ -193,12 +199,14 @@ public class RouteEnhanceServiceImpl implements RouteEnhanceService {
         if (limit.get()) {
             String requestUri = uri.getPath();
             int count = routeEnhanceCacheService.getCurrentRequestCount(requestUri, requestIp);
-            if (count == 0)
+            if (count == 0) {
                 routeEnhanceCacheService.setCurrentRequestCount(requestUri, requestIp, Long.parseLong(rule.getIntervalSec()));
-            else if (count >= Integer.parseInt(rule.getCount()))
+            } else if (count >= Integer.parseInt(rule.getCount())) {
                 return FebsUtil.makeWebFluxResponse(response, MediaType.APPLICATION_JSON_VALUE,
                         HttpStatus.TOO_MANY_REQUESTS, new FebsResponse().message("访问频率超限,请稍后再试"));
-            else routeEnhanceCacheService.incrCurrentRequestCount(requestUri, requestIp);
+            } else {
+                routeEnhanceCacheService.incrCurrentRequestCount(requestUri, requestIp);
+            }
         }
         return null;
     }
@@ -206,7 +214,9 @@ public class RouteEnhanceServiceImpl implements RouteEnhanceService {
     private URI getGatewayOriginalRequestUrl(ServerWebExchange exchange) {
         LinkedHashSet<URI> uris = exchange.getAttribute(ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR);
         URI originUri = null;
-        if (uris != null) originUri = uris.stream().findFirst().orElse(null);
+        if (uris != null) {
+            originUri = uris.stream().findFirst().orElse(null);
+        }
         return originUri;
     }
 

+ 9 - 2
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RouteLogServiceImpl.java

@@ -24,11 +24,18 @@ import java.time.LocalDateTime;
 @Service
 public class RouteLogServiceImpl implements RouteLogService {
 
-    @Autowired(required = false)
     private RouteLogMapper routeLogMapper;
-    @Autowired(required = false)
     private ReactiveMongoTemplate template;
 
+    @Autowired(required = false)
+    public void setRouteLogMapper(RouteLogMapper routeLogMapper) {
+        this.routeLogMapper = routeLogMapper;
+    }
+    @Autowired(required = false)
+    public void setTemplate(ReactiveMongoTemplate template) {
+        this.template = template;
+    }
+
     @Override
     public Flux<RouteLog> findAll() {
         return routeLogMapper.findAll();

+ 13 - 4
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/service/impl/RouteUserServiceImpl.java

@@ -6,6 +6,7 @@ import cc.mrbird.febs.gateway.enhance.entity.RouteUser;
 import cc.mrbird.febs.gateway.enhance.mapper.RouteUserMapper;
 import cc.mrbird.febs.gateway.enhance.service.RouteUserService;
 import cc.mrbird.febs.gateway.enhance.utils.PageableExecutionUtil;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
@@ -22,15 +23,23 @@ import java.time.LocalDateTime;
  * @author MrBird
  */
 @Service
+@RequiredArgsConstructor
 public class RouteUserServiceImpl implements RouteUserService {
 
-    @Autowired
-    private PasswordEncoder passwordEncoder;
-    @Autowired(required = false)
+    private final PasswordEncoder passwordEncoder;
+
     private RouteUserMapper routeUserMapper;
-    @Autowired(required = false)
     private ReactiveMongoTemplate template;
 
+    @Autowired(required = false)
+    public void setRouteUserMapper(RouteUserMapper routeUserMapper) {
+        this.routeUserMapper = routeUserMapper;
+    }
+    @Autowired(required = false)
+    public void setTemplate(ReactiveMongoTemplate template) {
+        this.template = template;
+    }
+
     @Override
     public Mono<RouteUser> create(RouteUser routeUser) {
         routeUser.setPassword(passwordEncoder.encode(routeUser.getPassword()));

+ 2 - 4
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/utils/AddressUtil.java

@@ -1,13 +1,12 @@
 package cc.mrbird.febs.gateway.enhance.utils;
 
 import cc.mrbird.febs.common.entity.constant.FebsConstant;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.lionsoul.ip2region.DataBlock;
 import org.lionsoul.ip2region.DbConfig;
 import org.lionsoul.ip2region.DbSearcher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
@@ -19,10 +18,9 @@ import java.lang.reflect.Method;
  *
  * @author MrBird
  */
+@Slf4j
 public class AddressUtil {
 
-    private static Logger log = LoggerFactory.getLogger(AddressUtil.class);
-
     public static String getCityInfo(String ip) {
         DbSearcher searcher = null;
         try {

+ 2 - 1
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/utils/PageableExecutionUtil.java

@@ -18,10 +18,11 @@ public class PageableExecutionUtil {
     public static <FEBS> Flux<FEBS> getPages(Query query, QueryRequest request, Class<FEBS> clazz,
                                              ReactiveMongoTemplate template) {
         Sort sort = Sort.by("id").descending();
-        if (StringUtils.isNotBlank(request.getField()) && StringUtils.isNotBlank(request.getOrder()))
+        if (StringUtils.isNotBlank(request.getField()) && StringUtils.isNotBlank(request.getOrder())) {
             sort = FebsConstant.ORDER_ASC.equals(request.getOrder()) ?
                     Sort.by(request.getField()).ascending() :
                     Sort.by(request.getField()).descending();
+        }
         Pageable pageable = PageRequest.of(request.getPageNum(), request.getPageSize(), sort);
         return template.find(query.with(pageable), clazz);
     }

+ 3 - 1
febs-gateway/src/main/java/cc/mrbird/febs/gateway/enhance/utils/RouteEnhanceCacheUtil.java

@@ -12,7 +12,9 @@ public class RouteEnhanceCacheUtil {
     private static final String RATELIMIT_COUNT_KEY_PREFIX = "febs:route:ratelimit:cout:";
 
     public static String getBlackListCacheKey(String ip) {
-        if (FebsConstant.LOCALHOST.equalsIgnoreCase(ip)) ip = FebsConstant.LOCALHOST_IP;
+        if (FebsConstant.LOCALHOST.equalsIgnoreCase(ip)) {
+            ip = FebsConstant.LOCALHOST_IP;
+        }
         return String.format("%s%s", BLACKLIST_CHACHE_KEY_PREFIX, ip);
     }
 

+ 3 - 0
febs-monitor/febs-monitor-admin/src/main/java/cc/mrbird/febs/monitor/admin/FebsMonitorAdminApplication.java

@@ -4,6 +4,9 @@ import de.codecentric.boot.admin.server.config.EnableAdminServer;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
+/**
+ * @author MrBird
+ */
 @EnableAdminServer
 @SpringBootApplication
 public class FebsMonitorAdminApplication {

+ 9 - 2
febs-monitor/febs-monitor-admin/src/main/java/cc/mrbird/febs/monitor/admin/runner/StartedUpRunner.java

@@ -11,17 +11,24 @@ import org.springframework.stereotype.Component;
 
 import java.time.LocalDateTime;
 
+/**
+ * @author MrBird
+ */
 @Component
 public class StartedUpRunner implements ApplicationRunner {
 
     private Logger log = LoggerFactory.getLogger(this.getClass());
 
-    @Autowired
-    private ConfigurableApplicationContext context;
+    private final ConfigurableApplicationContext context;
 
     @Value("${spring.application.name:'FEBS-Monitor-Admin'}")
     private String applicationName;
 
+    @Autowired
+    public StartedUpRunner(ConfigurableApplicationContext context) {
+        this.context = context;
+    }
+
     @Override
     public void run(ApplicationArguments args) {
         if (context.isActive()) {

+ 0 - 0
febs-monitor/Zipkin-Server/run.sh → febs-monitor/zipkin-server/run.sh


+ 0 - 0
febs-monitor/Zipkin-Server/startup.md → febs-monitor/zipkin-server/startup.md


+ 3 - 0
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/FebsServerSystemApplication.java

@@ -8,6 +8,9 @@ import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
+/**
+ * @author MrBird
+ */
 @EnableAsync
 @SpringBootApplication
 @FebsCloudApplication

+ 36 - 36
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/aspect/AspectSupport.java → febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/aspect/BaseAspectSupport.java

@@ -1,36 +1,36 @@
-package cc.mrbird.febs.server.system.aspect;
-
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.reflect.MethodSignature;
-
-import java.lang.reflect.Method;
-
-/**
- * @author MrBird
- */
-public abstract class AspectSupport {
-
-    Method resolveMethod(ProceedingJoinPoint point) {
-        MethodSignature signature = (MethodSignature)point.getSignature();
-        Class<?> targetClass = point.getTarget().getClass();
-
-        Method method = getDeclaredMethod(targetClass, signature.getName(),
-                signature.getMethod().getParameterTypes());
-        if (method == null) {
-            throw new IllegalStateException("无法解析目标方法: " + signature.getMethod().getName());
-        }
-        return method;
-    }
-
-    private Method getDeclaredMethod(Class<?> clazz, String name, Class<?>... parameterTypes) {
-        try {
-            return clazz.getDeclaredMethod(name, parameterTypes);
-        } catch (NoSuchMethodException e) {
-            Class<?> superClass = clazz.getSuperclass();
-            if (superClass != null) {
-                return getDeclaredMethod(superClass, name, parameterTypes);
-            }
-        }
-        return null;
-    }
-}
+package cc.mrbird.febs.server.system.aspect;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.reflect.MethodSignature;
+
+import java.lang.reflect.Method;
+
+/**
+ * @author MrBird
+ */
+public abstract class BaseAspectSupport {
+
+    Method resolveMethod(ProceedingJoinPoint point) {
+        MethodSignature signature = (MethodSignature)point.getSignature();
+        Class<?> targetClass = point.getTarget().getClass();
+
+        Method method = getDeclaredMethod(targetClass, signature.getName(),
+                signature.getMethod().getParameterTypes());
+        if (method == null) {
+            throw new IllegalStateException("无法解析目标方法: " + signature.getMethod().getName());
+        }
+        return method;
+    }
+
+    private Method getDeclaredMethod(Class<?> clazz, String name, Class<?>... parameterTypes) {
+        try {
+            return clazz.getDeclaredMethod(name, parameterTypes);
+        } catch (NoSuchMethodException e) {
+            Class<?> superClass = clazz.getSuperclass();
+            if (superClass != null) {
+                return getDeclaredMethod(superClass, name, parameterTypes);
+            }
+        }
+        return null;
+    }
+}

+ 4 - 4
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/aspect/ControllerEndpointAspect.java

@@ -4,12 +4,12 @@ import cc.mrbird.febs.common.annotation.ControllerEndpoint;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.FebsUtil;
 import cc.mrbird.febs.server.system.service.ILogService;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Pointcut;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.lang.reflect.Method;
@@ -19,10 +19,10 @@ import java.lang.reflect.Method;
  */
 @Aspect
 @Component
-public class ControllerEndpointAspect extends AspectSupport {
+@RequiredArgsConstructor
+public class ControllerEndpointAspect extends BaseAspectSupport {
 
-    @Autowired
-    private ILogService logService;
+    private final ILogService logService;
 
     @Pointcut("@annotation(cc.mrbird.febs.common.annotation.ControllerEndpoint)")
     public void pointcut() {

+ 5 - 7
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/configure/FebsServerSystemResourceServerConfigure.java

@@ -4,8 +4,8 @@ import cc.mrbird.febs.common.entity.constant.EndpointConstant;
 import cc.mrbird.febs.common.handler.FebsAccessDeniedHandler;
 import cc.mrbird.febs.common.handler.FebsAuthExceptionEntryPoint;
 import cc.mrbird.febs.server.system.properties.FebsServerSystemProperties;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
@@ -19,14 +19,12 @@ import org.springframework.security.oauth2.config.annotation.web.configurers.Res
  */
 @Configuration
 @EnableResourceServer
+@RequiredArgsConstructor
 public class FebsServerSystemResourceServerConfigure extends ResourceServerConfigurerAdapter {
 
-    @Autowired
-    private FebsAccessDeniedHandler accessDeniedHandler;
-    @Autowired
-    private FebsAuthExceptionEntryPoint exceptionEntryPoint;
-    @Autowired
-    private FebsServerSystemProperties properties;
+    private final FebsAccessDeniedHandler accessDeniedHandler;
+    private final FebsAuthExceptionEntryPoint exceptionEntryPoint;
+    private final FebsServerSystemProperties properties;
 
     @Override
     public void configure(HttpSecurity http) throws Exception {

+ 3 - 3
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/configure/FebsWebConfigure.java

@@ -6,8 +6,8 @@ import cc.mrbird.febs.server.system.properties.FesbSwaggerProperties;
 import com.baomidou.mybatisplus.core.parser.ISqlParser;
 import com.baomidou.mybatisplus.extension.parsers.BlockAttackSqlParser;
 import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -31,10 +31,10 @@ import java.util.concurrent.ThreadPoolExecutor;
  */
 @Configuration
 @EnableSwagger2
+@RequiredArgsConstructor
 public class FebsWebConfigure {
 
-    @Autowired
-    private FebsServerSystemProperties properties;
+    private final FebsServerSystemProperties properties;
 
     /**
      * 注册异步线程池

+ 6 - 3
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/DeptController.java

@@ -7,8 +7,8 @@ import cc.mrbird.febs.common.entity.system.Dept;
 import cc.mrbird.febs.server.system.service.IDeptService;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.wuwenze.poi.ExcelKit;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -19,14 +19,17 @@ import javax.validation.constraints.NotBlank;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * @author MrBird
+ */
 @Slf4j
 @Validated
 @RestController
 @RequestMapping("dept")
+@RequiredArgsConstructor
 public class DeptController {
 
-    @Autowired
-    private IDeptService deptService;
+    private final IDeptService deptService;
 
     @GetMapping
     public FebsResponse deptList(QueryRequest request, Dept dept) {

+ 5 - 4
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/EximportController.java

@@ -13,10 +13,10 @@ import com.google.common.collect.Lists;
 import com.wuwenze.poi.ExcelKit;
 import com.wuwenze.poi.handler.ExcelReadHandler;
 import com.wuwenze.poi.pojo.ExcelErrorField;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -37,10 +37,11 @@ import java.util.stream.IntStream;
 @Slf4j
 @RestController
 @RequestMapping("eximport")
+@RequiredArgsConstructor
 public class EximportController {
 
-    @Autowired
-    private IEximportService eximportService;
+    private final IEximportService eximportService;
+    private static final String XLSX = ".xlsx";
 
     @GetMapping
     public FebsResponse findEximports(QueryRequest request) {
@@ -68,7 +69,7 @@ public class EximportController {
             throw new FebsException("导入数据为空");
         }
         String filename = file.getOriginalFilename();
-        if (!StringUtils.endsWith(filename, ".xlsx")) {
+        if (!StringUtils.endsWith(filename, XLSX)) {
             throw new FebsException("只支持.xlsx类型文件导入");
         }
         Stopwatch stopwatch = Stopwatch.createStarted();

+ 5 - 4
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/GeneratorConfigController.java

@@ -5,9 +5,9 @@ import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.system.GeneratorConfig;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.server.system.service.IGeneratorConfigService;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -21,11 +21,11 @@ import javax.validation.Valid;
  */
 @Slf4j
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("generatorConfig")
 public class GeneratorConfigController {
 
-    @Autowired
-    private IGeneratorConfigService generatorConfigService;
+    private final IGeneratorConfigService generatorConfigService;
 
     @GetMapping
     @PreAuthorize("hasAuthority('gen:config')")
@@ -37,8 +37,9 @@ public class GeneratorConfigController {
     @PreAuthorize("hasAuthority('gen:config:update')")
     @ControllerEndpoint(operation = "修改生成代码配置", exceptionMessage = "修改GeneratorConfig失败")
     public void updateGeneratorConfig(@Valid GeneratorConfig generatorConfig) throws FebsException {
-        if (StringUtils.isBlank(generatorConfig.getId()))
+        if (StringUtils.isBlank(generatorConfig.getId())) {
             throw new FebsException("配置id不能为空");
+        }
         this.generatorConfigService.updateGeneratorConfig(generatorConfig);
     }
 }

+ 6 - 8
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/GeneratorController.java

@@ -3,19 +3,19 @@ package cc.mrbird.febs.server.system.controller;
 import cc.mrbird.febs.common.annotation.ControllerEndpoint;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.entity.constant.GeneratorConstant;
 import cc.mrbird.febs.common.entity.system.Column;
 import cc.mrbird.febs.common.entity.system.GeneratorConfig;
-import cc.mrbird.febs.common.entity.constant.GeneratorConstant;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.FebsUtil;
 import cc.mrbird.febs.common.utils.FileUtil;
 import cc.mrbird.febs.server.system.helper.GeneratorHelper;
 import cc.mrbird.febs.server.system.service.IGeneratorConfigService;
 import cc.mrbird.febs.server.system.service.IGeneratorService;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.RegExUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -32,17 +32,15 @@ import java.util.Map;
  */
 @Slf4j
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("generator")
 public class GeneratorController {
 
     private static final String SUFFIX = "_code.zip";
 
-    @Autowired
-    private IGeneratorService generatorService;
-    @Autowired
-    private IGeneratorConfigService generatorConfigService;
-    @Autowired
-    private GeneratorHelper generatorHelper;
+    private final IGeneratorService generatorService;
+    private final IGeneratorConfigService generatorConfigService;
+    private final GeneratorHelper generatorHelper;
 
     @GetMapping("tables")
     @PreAuthorize("hasAuthority('gen:generate')")

+ 3 - 4
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/LogController.java

@@ -4,13 +4,12 @@ import cc.mrbird.febs.common.annotation.ControllerEndpoint;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.entity.system.Log;
-import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.FebsUtil;
 import cc.mrbird.febs.server.system.service.ILogService;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.wuwenze.poi.ExcelKit;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
@@ -24,11 +23,11 @@ import java.util.Map;
  */
 @Slf4j
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("log")
 public class LogController {
 
-    @Autowired
-    private ILogService logService;
+    private final ILogService logService;
 
     @GetMapping
     public FebsResponse logList(Log log, QueryRequest request) {

+ 3 - 3
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/LoginLogController.java

@@ -8,8 +8,8 @@ import cc.mrbird.febs.common.utils.FebsUtil;
 import cc.mrbird.febs.server.system.service.ILoginLogService;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.wuwenze.poi.ExcelKit;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
@@ -23,11 +23,11 @@ import java.util.Map;
  */
 @Slf4j
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("loginLog")
 public class LoginLogController {
 
-    @Autowired
-    private ILoginLogService loginLogService;
+    private final ILoginLogService loginLogService;
 
     @GetMapping
     public FebsResponse loginLogList(LoginLog loginLog, QueryRequest request) {

+ 4 - 4
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/MenuController.java

@@ -7,9 +7,9 @@ import cc.mrbird.febs.common.entity.system.Menu;
 import cc.mrbird.febs.server.system.service.IMenuService;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.wuwenze.poi.ExcelKit;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -27,15 +27,15 @@ import java.util.Map;
 @Slf4j
 @Validated
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("/menu")
 public class MenuController {
 
-    @Autowired
-    private IMenuService menuService;
+    private final IMenuService menuService;
 
     @GetMapping("/{username}")
     public FebsResponse getUserRouters(@NotBlank(message = "{required}") @PathVariable String username) {
-        Map<String, Object> result = new HashMap<>();
+        Map<String, Object> result = new HashMap<>(2);
         List<VueRouter<Menu>> userRouters = this.menuService.getUserRouters(username);
         String userPermissions = this.menuService.findUserPermissions(username);
         String[] permissionArray = new String[0];

+ 6 - 6
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/RoleController.java

@@ -8,8 +8,8 @@ import cc.mrbird.febs.common.utils.FebsUtil;
 import cc.mrbird.febs.server.system.service.IRoleService;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.wuwenze.poi.ExcelKit;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -20,17 +20,17 @@ import javax.validation.constraints.NotBlank;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * @author MrBird
+ */
 @Slf4j
 @Validated
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("role")
 public class RoleController {
 
-    @Autowired
-    private IRoleService roleService;
-
-    private String message;
-
+    private final IRoleService roleService;
     @GetMapping
     public FebsResponse roleList(QueryRequest queryRequest, Role role) {
         Map<String, Object> dataTable = FebsUtil.getDataTable(roleService.findRoles(role, queryRequest));

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác