dc407544bf9c86b45f8f37d64387739cec7fd524.svn-base 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package cn.com.goldenwater.dcproj.config;
  2. import cn.com.goldenwater.dcproj.constValue.CommonLabel;
  3. import cn.com.goldenwater.dcproj.intercepter.*;
  4. import cn.com.goldenwater.dcproj.service.impl.RedisDataCenterReceiver;
  5. import cn.com.goldenwater.dcproj.service.impl.system.RedisReceiver;
  6. import cn.com.goldenwater.util.common.IPUtils;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.beans.factory.annotation.Qualifier;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.context.annotation.Bean;
  11. import org.springframework.context.annotation.Configuration;
  12. import org.springframework.data.redis.connection.RedisConnectionFactory;
  13. import org.springframework.data.redis.core.RedisTemplate;
  14. import org.springframework.data.redis.listener.PatternTopic;
  15. import org.springframework.data.redis.listener.RedisMessageListenerContainer;
  16. import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
  17. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  18. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  19. import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
  20. @Configuration
  21. public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
  22. @Value("${web.upload-path}")
  23. public String fileDir;
  24. @Value("${getFile.prefix}")
  25. public String prefix;
  26. @Value("${intercept.enable}")
  27. public Boolean enterceptEnable;
  28. @Autowired
  29. private PdfHeaderInterceptor pdfHeaderInterceptor;
  30. @Override
  31. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  32. registry.addResourceHandler(prefix + "**").addResourceLocations("file:" + fileDir);
  33. registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
  34. registry.addResourceHandler("**/upload/**").addResourceLocations("classpath:**/upload/");
  35. registry.addResourceHandler("**/file/**").addResourceLocations("classpath:**/file/");
  36. super.addResourceHandlers(registry);
  37. }
  38. /**
  39. * 注册拦截器
  40. */
  41. @Override
  42. public void addInterceptors(InterceptorRegistry registry) {
  43. registry.addInterceptor(getCorsInterceptor()).addPathPatterns("/**");
  44. registry.addInterceptor(getFileCheckInterceptor()).addPathPatterns("/**");
  45. registry.addInterceptor(pdfHeaderInterceptor);
  46. // registry.addInterceptor(getCorsInterceptor()).addPathPatterns("/druid/**");
  47. // registry.addInterceptor(getPathVariableInterceptor()).addPathPatterns("/bis/insp/loginByCode/**","/bis/insp/sendMessage/**");
  48. if (enterceptEnable) {
  49. //注册自定义拦截器,添加拦截路径和排除拦截路径
  50. registry.addInterceptor(getLogInterceptor()).addPathPatterns("/**")
  51. .excludePathPatterns("/wx/call/back/**", "/upload/**", "/version/**", "/bis/insp/loginByCode/**", "/bis/insp/loginByPwd/**", "/bis/insp/getTokenByTel/**", "/bis/insp/logOut/**", "/bis/insp/sendMessage/**", "/bis/insp/getCaptchaImage/**", "/refresh/task"
  52. , "/qrcode/login/**", "/bis/login/quanguo/**", "/version/download/**", "/dc/gd/base/download/**", "/QRCode/**", "/file/changeSmallImg", "/bis/insp/getUserInfo", "/bis/insp/task/dth/day/pblmListOfAll"
  53. , "/page/grw/doc", "/att/meeting/**", "/page/keyReg/doc", "/page/waga/doc", "/page/vill/doc", "/page/track/doc", "/page/rever/doc"
  54. , "/dc/impExcel/**", "/bis/insp/test/**", "/dc/imp/pblm/**", "/auth/refresh", "/meet/**", "/page/sd/doc", "/page/pblm/doc", "/att/rtu/base/**"
  55. , "/supervision/plan/dowmTemplate/**", "/dc/wash/**", "/tac/insp/year/batch/group/pers/**", "/bis/insp/off/line/uploadOffLine/*", "/tac/worker/b/insertIntoData/**", "/tac/worker/b/downTemplateExcel", "/webService/**", "/sso/**", "/ssoValidate/**", "/ding/**", "/Synchronize/**", "/statistics/**", "/cas/sd/**", "/cas/fj/**", "/cas/sdt/**","/cas/hn/**", "/cas/cd/**","/cas/hblx/**");
  56. //全局拦截
  57. // registry.addInterceptor(getPathInterceptor()).addPathPatterns("/**").excludePathPatterns("/dc/insp/rsvrRgstr/list/**");
  58. }
  59. super.addInterceptors(registry);
  60. }
  61. @Bean
  62. public CorsInterceptor getCorsInterceptor() {
  63. return new CorsInterceptor();
  64. }
  65. @Bean
  66. public PathVariableInterceptor getPathVariableInterceptor() {
  67. return new PathVariableInterceptor();
  68. }
  69. @Bean
  70. public PathInterceptor getPathInterceptor() {
  71. return new PathInterceptor();
  72. }
  73. @Bean
  74. public LogInterceptor getLogInterceptor() {
  75. return new LogInterceptor();
  76. }
  77. @Bean
  78. public FileCheckInterceptor getFileCheckInterceptor() {
  79. return new FileCheckInterceptor();
  80. }
  81. @Value("${spring.redis.port}")
  82. private int port;
  83. @Value("${spring.redis.host}")
  84. private String hostName;
  85. @Bean
  86. RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,
  87. MessageListenerAdapter listenerAdapter, MessageListenerAdapter listenerAdapter1, MessageListenerAdapter listenerAdapter2, MessageListenerAdapter listenerAdapterStart, MessageListenerAdapter listenerAdapterRun, MessageListenerAdapter listenerAdaptWeiXian) {
  88. RedisMessageListenerContainer container = new RedisMessageListenerContainer();
  89. container.setConnectionFactory(connectionFactory);
  90. container.addMessageListener(listenerAdapter, new PatternTopic(CommonLabel.channel));
  91. container.addMessageListener(listenerAdapter1, new PatternTopic(CommonLabel.SEND_TO_CENTER));
  92. container.addMessageListener(listenerAdapter2, new PatternTopic(CommonLabel.SEND_TO_UPDATE));
  93. container.addMessageListener(listenerAdapterStart, new PatternTopic(CommonLabel.SEND_TO_START));
  94. container.addMessageListener(listenerAdapterRun, new PatternTopic(CommonLabel.SEND_TO_RUN));
  95. container.addMessageListener(listenerAdaptWeiXian, new PatternTopic(CommonLabel.SEND_TO_WEI_XIN));
  96. return container;
  97. }
  98. @Bean
  99. MessageListenerAdapter listenerAdapter1(RedisDataCenterReceiver redisLoginReceiver) {
  100. return new MessageListenerAdapter(redisLoginReceiver, "receiveMessage");
  101. }
  102. @Bean
  103. MessageListenerAdapter listenerAdapter2(RedisDataCenterReceiver redisLoginReceiver) {
  104. return new MessageListenerAdapter(redisLoginReceiver, "receiveMessageUpdate");
  105. }
  106. @Bean
  107. MessageListenerAdapter listenerAdapterStart(RedisDataCenterReceiver redisLoginReceiver) {
  108. return new MessageListenerAdapter(redisLoginReceiver, "receiveMessageStart");
  109. }
  110. @Bean
  111. MessageListenerAdapter listenerAdapterRun(RedisDataCenterReceiver redisLoginReceiver) {
  112. return new MessageListenerAdapter(redisLoginReceiver, "receiveMessageRun");
  113. }
  114. @Bean
  115. MessageListenerAdapter listenerAdapter(RedisReceiver redisReceiver) {
  116. return new MessageListenerAdapter(redisReceiver, "receiveMessage");
  117. }
  118. @Bean
  119. MessageListenerAdapter listenerAdaptWeiXian(RedisDataCenterReceiver redisLoginReceiver) {
  120. return new MessageListenerAdapter(redisLoginReceiver, "receiveMessageWeiXin");
  121. }
  122. @Bean("redisTemplate")
  123. public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
  124. return IPUtils.getRedisTemplate(connectionFactory);
  125. }
  126. }