【发布时间】:2020-08-22 22:03:35
【问题描述】:
我有一个授权服务器和资源服务器。 我已经自动配置了 OAuth 默认实现。不需要代码,只在
中完成了配置spring:
security:
oauth2:
resourceserver:
jwt:
jwk-set-uri:<auth server configuration url here>
Maven 依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>
spring-boot-starter-oauth2-resource-server
</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
目前我所有的网址都得到保护。
@PostMapping(path = "/secure/test", consumes = "application/json", produces = "application/json")
public @ResponseBody String testService(@RequestBody String name ,@RequestHeader Map<String, String>headers) {
headers.forEach((K,V)->printHeaders(K,V));
}
我希望每个人都可以访问我的以下 uri,
@PostMapping(path = "/test", consumes = "application/json", produces = "application/json")
public @ResponseBody String testAuthService(@RequestBody String name ,@RequestHeader Map<String, String>headers) {
headers.forEach((K,V)->printHeaders(K,V));
}
我尝试覆盖以下内容,但在尝试不使用不记名令牌时出现 403 错误
@Configuration
public class OAuth2LoginSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) {
try {
http
.authorizeRequests(authorize -> authorize
.mvcMatchers("/api/secure/**").authenticated()
.anyRequest().permitAll()
)
.oauth2ResourceServer(OAuth2ResourceServerConfigurer::jwt);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
错误响应
{
"timestamp": "2020-05-07T14:28:22.729+0000",
"status": 403,
"error": "Forbidden",
"message": "Forbidden",
"path": "/api/test"
}
如何仅允许使用 Spring Security 5.2.2 + Spring Boot 2.2 + Oauth Autoconfiguration 对某些 url 进行身份验证
【问题讨论】:
-
欢迎来到 stackoveflow。参观并获得您的第一个徽章-stackoverflow.com/tour
-
@Deepak 我的回答有用吗?
标签: spring-security spring-security-oauth2