Java Spring引导资源服务器使用HTTP POST而不是HTTP GET验证令牌
我有一个服务器,它具有所提到的依赖项和配置:Java Spring引导资源服务器使用HTTP POST而不是HTTP GET验证令牌,java,spring,spring-boot,oauth,Java,Spring,Spring Boot,Oauth,我有一个服务器,它具有所提到的依赖项和配置: spring-security-oauth2 spring-security-oauth2-autoconfigure 安全配置用@EnableResourceServer注释 属性包含: spring: security: oauth2: resource: token-info-uri: https://token-validation-url/example 当我执行requestcurl-H“Au
- spring-security-oauth2
- spring-security-oauth2-autoconfigure
@EnableResourceServer
注释
属性包含:
spring:
security:
oauth2:
resource:
token-info-uri: https://token-validation-url/example
当我执行requestcurl-H“Authorization:xyz”时http://localhost:8080/my-端点
,我得到401,但我看不到将执行用于令牌验证的HTTP调用
如果我从属性中删除spring前缀,我仍然会得到401,但它会尝试HTTP POST到https://token-validation-url/example
:
security:
oauth2:
resource:
token-info-uri: https://token-validation-url/example
如果我使用相同的令牌并手动尝试httpgethttps://token-validation-url/example?otoken=xyz
,它返回它是有效的
如何指定查询参数?
为什么服务器尝试使用
httppost
而不是httpget
验证令牌?注意到httpposthttps://token-validation-url/example?otoken=xyz
验证与GET so used相同的内容:
security:
oauth2:
resource:
token-info-uri: https://token-validation-url/example
只需设置令牌名称:
@SpringBootApplication
public class ExampleApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(ExampleApplication.class, args);
RemoteTokenServices remoteTokenServices = context.getBean(RemoteTokenServices.class);
remoteTokenServices.setTokenName("otoken");
}
}
另一种配置
RemoteTokenServices
:的方法是:我不知道这个确切的示例,但是当我使用spring security时,我需要一个以标头中的Bear开头的有效令牌,如下所述:我用Bear传递它,只是在示例中遗漏了。我不认为这会造成问题。