Browse Source

优化自动配置

zhou-hao 7 năm trước cách đây
mục cha
commit
54315e0572

+ 6 - 2
hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/AuthorizationAutoConfiguration.java

@@ -1,7 +1,9 @@
 package org.hswebframework.web.authorization.simple;
 
 import org.hswebframework.web.authorization.Authentication;
+import org.hswebframework.web.authorization.AuthenticationHolder;
 import org.hswebframework.web.authorization.AuthenticationManager;
+import org.hswebframework.web.authorization.AuthenticationSupplier;
 import org.hswebframework.web.authorization.builder.AuthenticationBuilderFactory;
 import org.hswebframework.web.authorization.builder.DataAccessConfigBuilderFactory;
 import org.hswebframework.web.authorization.simple.builder.DataAccessConfigConvert;
@@ -24,7 +26,7 @@ import java.util.List;
  * @author zhouhao
  */
 @Configuration
-public class AuthorizationAutoConfiguration {
+public class DefaultAuthorizationAutoConfiguration {
 
     @Autowired(required = false)
     private List<DataAccessConfigConvert> dataAccessConfigConverts;
@@ -39,7 +41,9 @@ public class AuthorizationAutoConfiguration {
     @Bean
     @ConditionalOnBean(AuthenticationManager.class)
     public UserTokenAuthenticationSupplier userTokenAuthenticationSupplier(AuthenticationManager authenticationManager) {
-        return new UserTokenAuthenticationSupplier(authenticationManager);
+        UserTokenAuthenticationSupplier supplier= new UserTokenAuthenticationSupplier(authenticationManager);
+        AuthenticationHolder.addSupplier(supplier);
+        return supplier;
     }
 
     @Bean

+ 1 - 1
hsweb-authorization/hsweb-authorization-api/src/main/resources/META-INF/spring.factories

@@ -1,3 +1,3 @@
 # Auto Configure
 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-org.hswebframework.web.authorization.simple.AuthorizationAutoConfiguration
+org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration

+ 0 - 3
hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java

@@ -99,9 +99,6 @@ public class AuthorizingHandlerAutoConfiguration {
             if (bean instanceof DataAccessHandler) {
                 defaultDataAccessController.addHandler(((DataAccessHandler) bean));
             }
-            if (bean instanceof AuthenticationSupplier) {
-                AuthenticationHolder.addSupplier(((AuthenticationSupplier) bean));
-            }
             return bean;
         }
     }

+ 0 - 2
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-service/hsweb-system-authorization-service-simple/src/main/java/org/hswebframework/web/service/authorization/simple/SimpleAuthenticationManager.java

@@ -10,8 +10,6 @@ import org.springframework.cache.annotation.Cacheable;
 import static org.hswebframework.web.service.authorization.simple.CacheConstants.USER_AUTH_CACHE_NAME;
 
 /**
- * TODO 完成注释
- *
  * @author zhouhao
  */
 public class SimpleAuthenticationManager implements AuthenticationManager {

+ 3 - 14
hsweb-system/hsweb-system-authorization/hsweb-system-authorization-starter/src/main/java/org/hswebframework/web/authorization/starter/AuthorizationAutoConfiguration.java

@@ -23,9 +23,11 @@ import org.hswebframework.web.authorization.AuthenticationManager;
 import org.hswebframework.web.authorization.listener.AuthorizationListener;
 import org.hswebframework.web.authorization.listener.AuthorizationListenerDispatcher;
 import org.hswebframework.web.authorization.listener.event.AuthorizationEvent;
+import org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration;
 import org.hswebframework.web.service.authorization.simple.SimpleAuthenticationManager;
 import org.hswebframework.utils.ClassUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.context.annotation.Bean;
@@ -40,24 +42,11 @@ import java.util.List;
 @Configuration
 @ComponentScan({"org.hswebframework.web.service.authorization.simple"
         , "org.hswebframework.web.controller.authorization"})
+@AutoConfigureBefore(DefaultAuthorizationAutoConfiguration.class)
 public class AuthorizationAutoConfiguration {
 
-    @Autowired(required = false)
-    private List<AuthorizationListener> listeners;
-
-    @Bean
-    @SuppressWarnings("unchecked")
-    public <E extends AuthorizationEvent> AuthorizationListenerDispatcher authorizationListenerDispatcher() {
-        AuthorizationListenerDispatcher dispatcher = new AuthorizationListenerDispatcher();
-        if (listeners != null) {
-            listeners.forEach(listener -> dispatcher.addListener((Class<E>) ClassUtils.getGenericType(listener.getClass()), listener));
-        }
-        return dispatcher;
-    }
-
     @Bean
     @ConditionalOnMissingBean(AuthenticationManager.class)
-    @ConditionalOnBean(AuthenticationInitializeService.class)
     public AuthenticationManager authenticationManager(AuthenticationInitializeService authenticationInitializeService) {
         return new SimpleAuthenticationManager(authenticationInitializeService);
     }