SSOConfiguration.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.uas.sso;
  2. import com.uas.sso.profile.Pre;
  3. import com.uas.sso.profile.Test;
  4. import com.uas.sso.web.AccountConfigurer;
  5. import com.uas.sso.filter.SSOInterceptor;
  6. import com.uas.sso.profile.Dev;
  7. import com.uas.sso.profile.Prod;
  8. import com.uas.sso.util.ContextUtils;
  9. import org.apache.log4j.Logger;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.context.annotation.Bean;
  12. import org.springframework.context.annotation.Configuration;
  13. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  14. import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
  15. import java.util.Properties;
  16. /**
  17. * SSOconfig 配置
  18. *
  19. * @author hejq
  20. */
  21. @Configuration
  22. public class SSOConfiguration extends WebMvcConfigurerAdapter {
  23. @Autowired
  24. private SSOInterceptor ssoInterceptor;
  25. private Logger logger = Logger.getLogger(this.getClass());
  26. @Override
  27. public void addInterceptors(InterceptorRegistry registry) {
  28. /**
  29. * SSO过滤, 这个地方拦截配置
  30. */
  31. registry.addInterceptor(ssoInterceptor).addPathPatterns("/**");
  32. }
  33. @Bean
  34. @Dev
  35. public AccountConfigurer devAccountConfigurer() {
  36. return accountConfigurer("dev");
  37. }
  38. @Bean
  39. @Test
  40. public AccountConfigurer testAccountConfigurer() {
  41. return accountConfigurer("test");
  42. }
  43. @Bean
  44. @Pre
  45. public AccountConfigurer preAccountConfigurer() {
  46. return accountConfigurer("pre");
  47. }
  48. @Bean
  49. @Prod
  50. public AccountConfigurer prodAccountConfigurer() {
  51. return accountConfigurer("prod");
  52. }
  53. /**
  54. * 获取当前环境下的配置
  55. *
  56. * @param profile
  57. * @return
  58. */
  59. private AccountConfigurer accountConfigurer(String profile) {
  60. AccountConfigurer accountConfigurer = new AccountConfigurer();
  61. accountConfigurer.setApplicationContext(ContextUtils.getApplicationContext());
  62. Properties properties = new Properties();
  63. String configPath = profile + "/account.properties";
  64. logger.info("***: " + configPath);
  65. try {
  66. properties.load(this.getClass().getClassLoader().getResourceAsStream(configPath));
  67. } catch (Throwable e) {
  68. throw new IllegalStateException("配置加载失败" + configPath);
  69. }
  70. accountConfigurer.initProperties(properties);
  71. return accountConfigurer;
  72. }
  73. }