【发布时间】:2018-12-26 21:07:43
【问题描述】:
我有一个 Spring Boot 资源服务器,如下所示:
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
}
还有这样的端点:
@RestController
public class TestResourceOne {
private static final Logger log = Logger.getLogger(TestResourceOne.class);
@RequestMapping(value = "/calcsqrt")
public Double calcSqtr(@RequestParam("value") Double value) {
return Math.sqrt(value);
}
@RequestMapping(value = "/sum")
public Double calcSqtr(@RequestParam("value1") Double value1, @RequestParam("value2") Double value2) {
return value1 + value2;
}
}
我的授权服务器位于 Azure AD 中,因此当我调用此端点“/calcsqrt”时,我传递了 Azure 生成的承载令牌。这是我的要求:
GET /serviceone/calcsqrt?value=3 HTTP/1.1
Host: localhost:8080
Authorization: Bearer MY_ACCESS_TOKEN_HERE
Cache-Control: no-cache
Postman-Token: ef5d493c-39f1-4bc4-9084-4ea510ac1255
但我总是从 spring 收到以下错误:
{
"error": "invalid_token",
"error_description": "Invalid access token: MY_ACCESS_TOKEN_HERE"
}
【问题讨论】:
-
您在资源服务器上使用的是哪个访问令牌转换器?
-
我没有使用任何转换器
-
您需要使用一些令牌服务(例如 RemoteTokenServices)来验证您的令牌。
标签: spring spring-boot oauth-2.0