SSOConfiguration.java 2.5 KB

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