我有两个Spring启动服务器应用程序(Spring启动1.5.2),第一个是资源服务器,第二个是授权服务器(oAuth2),我已经将Spring启动执行器添加到两个服务器并配置了两个以下属性:
management.security.roles=ROLE_MYADMINROLE
management.context-path=/myactuator
在资源服务器中,我可以使用从授权服务器获取的令牌为持有角色ROLE_MYADMINROLE
的用户访问执行器端点。
但是在授权服务器本身,我无法让令牌在第一位工作(Http Basic正在工作),使用令牌,我已经为它添加了资源服务器配置,并将过滤器顺序设置为3阅读Spring启动文档后
security.oauth2.resource.filter-order=3
OAuth2资源受订单
security.oauth2.resource.filter-order
的过滤器链保护,默认情况下默认情况下是过滤器保护执行器端点之后(因此,除非您更改订单,否则执行器端点将保留在HTTP Basic上)。
在Spring boot release notes中,我们对此过滤顺序有这个:
OAuth 2资源过滤器
OAuth2资源过滤器的默认顺序已从3更改为 SecurityProperties.ACCESS_OVERRIDE_ORDER - 1.这将它置于之后 执行器端点但在基本认证过滤器链之前。 可以通过设置恢复默认值
security.oauth2.resource.filter-order
= 3
现在我的授权服务器中的执行器端点接受从同一服务器发出的令牌,问题是为什么执行器端点的默认值是Http Basic?我认为oAuth2比Http Basic更安全吗?为什么我必须更改授权服务器中的过滤器顺序而不是资源服务器中的过滤顺序?在这里,我正在寻找一个解释,而不是一个解决方案,因为我已经按照我的意愿工作了。