设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

一个项目的SpringCloud微服务改造过程(3)

发布时间:2019-08-06 16:22 所属栏目:21 来源:黄玲峰
导读:sso静态资源文件路径如图: 2)拦截器 SpringMVC配置文件内容: 拦截任何请求并且初始化参数,有些请求是不需要拦截的,有的请求登录后不需要经过权限校验直接放行。 mvc:interceptors mvc:interceptor mvc:mapping

sso静态资源文件路径如图:

一个项目的SpringCloud微服务改造过程

2)拦截器

SpringMVC配置文件内容:

拦截任何请求并且初始化参数,有些请求是不需要拦截的,有的请求登录后不需要经过权限校验直接放行。

  1. <mvc:interceptors> 
  2.     <mvc:interceptor> 
  3.         <mvc:mapping path="/**" /> 
  4.            <bean class="自定义拦截器PermissionInterceptor"> 
  5.            <!-- 未登录即可访问的地址 --> 
  6.           <property name="excludeUrls"> 
  7.           <list><value>请求地址<value></list> 
  8.           </property> 
  9.           <!-- 只要登录了就不需要拦截的资源 --> 
  10.           <property name="LogInExcludeUrls"> 
  11.           <list><value>请求地址<value></list> 
  12.           </property> 
  13.          </bean> 
  14.    </mvc:interceptor> 
  15.  </mvc:interceptors> 

SpringBoot中添加拦截器只需继承WebMvcConfigurerAdapter,并重写addInterceptors方法即可。

  1. /*** 拦截器 
  2. * @param registry 
  3. */ 
  4. @Override 
  5. public void addInterceptors(InterceptorRegistry registry) { 
  6.    registry.addInterceptor(permissionInterceptor). 
  7.            addPathPatterns("/**"); 
  8.    super.addInterceptors(registry); 

自定义的拦截器需要初始化一些参数,因此需要在注册拦截器之前注册,这里我们设置为懒加载。免登录拦截的路径,以及登录后不需要判断权限的路径都写在yml文件了,通过系统环境变量Environment获取值。

  1. @Autowired  
  2. @Lazy  
  3. private PermissionInterceptor permissionInterceptor;  
  4. @Autowired  
  5. private Environment environment;  
  6. /** 
  7. */ 
  8. @Bean 
  9. public PermissionInterceptor permissionInterceptor() { 
  10. PermissionInterceptor permissionInterceptor = new PermissionInterceptor(); 
  11. List<String> excludeUrls = Arrays.asList(environment.getProperty("intercept.exclude.path").split(",")); 
  12. List<String> commonUrls = Arrays.asList(environment.getProperty("intercept.login.exclude.path").split(",")); 
  13. permissionInterceptor.setCommonUrls(commonUrls); 
  14. permissionInterceptor.setExcludeUrls(excludeUrls); 
  15. return permissionInterceptor; 

3)数据库和MyBatis配置 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读