我有一个Spring Boot应用程序:
开始应用课程:
@SpringBootApplication
@EnableResourceServer
public class ApiApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(ApiApplication .class);
}
}
RestController:
@RestController
public class CodeController {
@GetMapping("/protected")
String show(){
return "show msg";
}
}
application.properties:
security.oauth2.resource.user-info-uri=https://api.github.com/user
我已经使用github生成了承载者令牌,并且一切正常。接下来,我向
发送请求https://mydomain/protected
使用 Advanced Rest Client (其中包含授权标头 带有属性载体令牌)。发送请求后,一切都确定,并且我可以访问受保护的端点,并且可以看到show msg。 太好了! :)我的资源服务器现在可以使用https://api.github.com/user链接来工作了。
现在,我更改了application.properties:
security.oauth2.resource.user-info-uri=https://api.allegro.pl/me
我有一个错误结果:
401未经授权
发送相同的请求时:
我100%确定使用
的承载令牌security.oauth2.resource.user-info-uri=https://api.allegro.pl/me
是正确的,因为例如对api的请求
使用高级休息客户端使用此承载令牌!
我的问题是:
我可以通过 Advanced REST Client 使用 bearer令牌访问api端点https://api.allegro.pl/me。但是使用我的应用程序端点:
https://mydomain/protected
受资源服务器保护,使用此链接=> https://api.allegro.pl/me无法使用的资源服务器。如果我改用=> https://api.github.com/user,一切正常,我的资源服务器正常工作。 为什么结果是401未经授权 invalid_token ,我确定令牌是正确的!