Spring Security动态路径放权使用说明

目的

为了解决每添加一个不需要登录的接口,首先要去 security.ignore.http-urls 配置不需要登录的接口路径,然后重启网关服务(因为网关掌握着鉴权),这样生产环境频繁重启,很不友好。于是自己

  1. 结合Spring Security权限相关的功能
  2. 结合Nacos动态刷新配置优点扩展了能动态刷新需要放权路径的功能

警惕

该功能需要测试是否稳定,毕竟官方没有这种方案,自己结合已有知识和大量实践试错整合的,并不确定是否会影响以后Spring Security+OAuth2权限相关功能。如果影响,以后会下线此功能。当然本人已经自测能想到的大部分异常场景,基本发现的问题,都已经及时修补,如果还有其它大bug,可能会下线此功能。

使用方法

把需要放权的地址配置到gateway-server-*.yml中的 dhgate.security.ignore.dynamic-http-urls 中,替换之前的 http-urls即可

dhgate:
  security:
    ignore:
      #固定放权地址(修改不会生效)
      http-urls: >    
        /actuator/health,
        /uaa/**
      #动态放权地址(修改会动态生效)
      dynamic-http-urls: >
        /dsuser/users-anon/**,
        /dsuser/api/**,
        /buser/users-anon/**,
        /buser/api/**

注:http-urls为静态配置,除了认证中心和网关自身地址外,暂时不配置任何地址

其他

此次更新同步修复不需要登录的接口,传过期token导致报token过期异常问题。