如何将安全的管理端点添加到Spring OAuth2 Server?

时间:2016-01-14 17:51:51

标签: java spring-security spring-security-oauth2 spring-oauth2

我们正在开发基于Spring Oauth2的Auth服务器。我们已经设法通过自定义UserDetails实现(以及一些其他自定义组件)将自定义数据添加到令牌中,以便我们可以将Auth服务器中的用户映射到应用程序中的实体。

应用程序后台还将支持通过管理界面创建新用户。出于这个原因,我们从/users开始打开了一些端点。

我们希望此ednpoints只能由具有信任范围的经过身份验证的客户端访问。因此,对这些端点的请求应提供Authorization标头,其中包含通过客户端凭据授予获得的有效Bearer令牌。

我们已尝试配置扩展WebSecurityConfigurerAdapter的这些端点的安全性。以下是configure(HttpSecurity http)方法的不同版本和结果:

http.csrf().disable().authorizeRequests().antMatchers("/users/**").permitAll();

这个有效!但是没有安全保障。

http.csrf().disable().authorizeRequests().antMatchers("/users/**").authenticated();

失败!似乎未应用执行身份验证的过滤器,我收到了403 Forbidden响应。使用authenticated()hasRole(...)替换hasAuthority(...)或建议经过身份验证的客户端的任何其他配置也是如此。

问题是如何配置端点以保护具有可信范围的客户端?

0 个答案:

没有答案