【发布时间】:2018-07-17 23:24:41
【问题描述】:
我在 Spring Boot 上有一个有效的 OAUTH2 实现,AuthorizationServer 和 ResourceServer 在同一个实现上,使用密码授权。 关于服务器:
- TokenStore 是自定义的,使用 WebService 远程存储令牌。
- 我有一个自定义的 AuthenticationProvider。
这适用于根据给定权限控制对资源的访问,例如,在 ResourceServer 配置中:
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/api/resource/**")
.hasAnyAuthority("USER", "ADMIN")
.antMatchers("/api/admin/**")
.hasAnyAuthority("ADMIN");
}
现在,我需要控制 USER 可以访问“/api/resource/1”但不能访问“/api/resource/2”,此 ID 可以更改,我在身份验证期间获取列表。
我尝试将 ID 列表添加到 OAuth2AccessToken 附加信息并在 ResourceServer 配置中添加自定义过滤器,但它总是为空。
那么,如何在不使用 JWT 的情况下实现这一点的正确方法是?
【问题讨论】:
标签: spring spring-boot oauth