1

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

应用程序后台还将支持通过管理界面创建新用户。出于这个原因,我们打开了一些从 开始的端点/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(...)orhasAuthority(...)或任何其他建议经过身份验证的客户端的配置替换也会发生同样的情况。

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

4

0 回答 0