示例:
代码语言:javascript复制@RestController
public class ExampleController {
private final OAuth2AuthorizedClientService authorizedClientService;
public ExampleController(OAuth2AuthorizedClientService authorizedClientService) {
this.authorizedClientService = authorizedClientService;
}
@GetMapping("/example")
public String example(OAuth2AuthenticationToken authentication) {
OAuth2AuthorizedClient authorizedClient = authorizedClientService.loadAuthorizedClient(
authentication.getAuthorizedClientRegistrationId(),
authentication.getName());
String accessToken = authorizedClient.getAccessToken().getTokenValue();
return "Access token: " accessToken;
}
}
在上面的示例中,我们注入了一个OAuth2AuthorizedClientService,它用于管理已授权的客户端信息。在example
方法中,我们使用loadAuthorizedClient
方法获取已授权的客户端信息,并从中提取访问令牌。这个访问令牌可以用来访问受保护的资源。
测试
现在,我们已经完成了所有必要的配置和代码,可以启动应用程序并尝试访问受保护的资源。可以使用以下命令来启动应用程序:
代码语言:javascript复制mvn spring-boot:run
然后,在浏览器中输入以下URL:
代码语言:javascript复制http://localhost:8080/example
如果一切正常,你应该会看到类似以下的输出:
代码语言:javascript复制Access token: <access-token>