package com.uas.sso; import com.uas.sso.profile.Pre; import com.uas.sso.profile.Test; import com.uas.sso.web.AccountConfigurer; import com.uas.sso.filter.SSOInterceptor; import com.uas.sso.profile.Dev; import com.uas.sso.profile.Prod; import com.uas.sso.util.ContextUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import java.util.Properties; /** * SSOconfig 配置 * * @author hejq */ @Configuration public class SSOConfiguration extends WebMvcConfigurerAdapter { @Autowired private SSOInterceptor ssoInterceptor; private Logger logger = Logger.getLogger(this.getClass()); @Override public void addInterceptors(InterceptorRegistry registry) { /** * SSO过滤, 这个地方拦截配置 */ registry.addInterceptor(ssoInterceptor).addPathPatterns("/**"); } @Bean @Dev public AccountConfigurer devAccountConfigurer() { return accountConfigurer("dev"); } @Bean @Test public AccountConfigurer testAccountConfigurer() { return accountConfigurer("test"); } @Bean @Pre public AccountConfigurer preAccountConfigurer() { return accountConfigurer("pre"); } @Bean @Prod public AccountConfigurer prodAccountConfigurer() { return accountConfigurer("prod"); } /** * 获取当前环境下的配置 * * @param profile * @return */ private AccountConfigurer accountConfigurer(String profile) { AccountConfigurer accountConfigurer = new AccountConfigurer(); accountConfigurer.setApplicationContext(ContextUtils.getApplicationContext()); Properties properties = new Properties(); String configPath = profile + "/account.properties"; logger.info("***: " + configPath); try { properties.load(this.getClass().getClassLoader().getResourceAsStream(configPath)); } catch (Throwable e) { throw new IllegalStateException("配置加载失败" + configPath); } accountConfigurer.initProperties(properties); return accountConfigurer; } }