Browse Source

fix: 修复过滤器拦截问题

huangzqa 1 năm trước cách đây
mục cha
commit
195da91dc1

+ 8 - 7
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/config/ProofConfiguration.java

@@ -4,8 +4,6 @@ import com.dragonsoft.dcuc.approve.filter.CheckProofsFilter;
 import com.dragonsoft.dcuc.approve.filter.cache.SecurityAppCache;
 import com.dragonsoft.dcuc.approve.filter.cache.SecurityUserCache;
 import com.dragonsoft.dcuc.approve.properties.ProofStarterProperties;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -22,26 +20,29 @@ import org.springframework.context.annotation.Configuration;
 public class ProofConfiguration {
 
     @Bean
-    @ConditionalOnMissingBean
     public SecurityUserCache securityUserCache(ProofStarterProperties proofStarterProperties) {
         return new SecurityUserCache(proofStarterProperties);
     }
 
     @Bean
-    @ConditionalOnMissingBean
     public SecurityAppCache appCache(ProofStarterProperties proofStarterProperties) {
         return new SecurityAppCache(proofStarterProperties);
     }
 
-    @ConditionalOnProperty(name = "approve.proof.enable-proofs-filter")
     @Bean
-    public FilterRegistrationBean<CheckProofsFilter> checkProofsFilter() {
+    public CheckProofsFilter proofsFilter() {
+        return new CheckProofsFilter();
+    }
+
+    @Bean
+    public FilterRegistrationBean<CheckProofsFilter> filterRegistrationBean() {
         FilterRegistrationBean<CheckProofsFilter> filterRegistrationBean = new FilterRegistrationBean<>();
-        filterRegistrationBean.setFilter(new CheckProofsFilter());
+        filterRegistrationBean.setFilter(proofsFilter());
         filterRegistrationBean.addUrlPatterns("/api/v1/*");
         filterRegistrationBean.addUrlPatterns("/api/v2/*");
         filterRegistrationBean.addUrlPatterns("/v1/*");
         filterRegistrationBean.setName("proofsFilter");
         return filterRegistrationBean;
     }
+
 }

+ 1 - 10
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/filter/CheckProofsFilter.java

@@ -13,8 +13,6 @@ import com.dragonsoft.duceap.base.utils.UserContextUtils;
 import com.dragonsoft.duceap.core.spring.SpringUtils;
 import com.dragonsoft.duceap.web.utils.ResponseUtils;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 import org.springframework.web.filter.OncePerRequestFilter;
 
 import javax.servlet.FilterChain;
@@ -31,19 +29,12 @@ import java.io.IOException;
  * @author huangzqa
  * @date 2021/8/18
  */
-@Component
 @Slf4j
 public class CheckProofsFilter extends OncePerRequestFilter {
 
-    private ApproveProperties approveProperties;
-
-    @Autowired
-    public void setApproveProperties(ApproveProperties approveProperties) {
-        this.approveProperties = approveProperties;
-    }
-
     @Override
     protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
+        ApproveProperties approveProperties = SpringUtils.getBean(ApproveProperties.class);
 
         String defaultAppCode = approveProperties.getAppCode();
         Proofs proofs = ProofsUtil.generalProofs(request, defaultAppCode);