为了解决每添加一个不需要登录的接口,首先要去 security.ignore.http-urls 配置不需要登录的接口路径,然后重启网关服务(因为网关掌握着鉴权),这样生产环境频繁重启,很不友好。于是自己
结合Spring Security权限相关的功能结合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过期异常问题。