1
0
mirror of synced 2026-08-04 17:27:13 +00:00

Re-structure OAuth2AuthenticationToken

Fixes gh-4553
This commit is contained in:
Joe Grandja
2017-09-19 12:36:06 -04:00
parent 8854414101
commit c54c622124
10 changed files with 143 additions and 80 deletions
@@ -17,7 +17,7 @@ package sample.web;
import org.springframework.http.HttpHeaders;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken;
import org.springframework.security.oauth2.client.authentication.OAuth2UserAuthenticationToken;
import org.springframework.security.oauth2.core.user.OAuth2User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -38,18 +38,18 @@ public class MainController {
@RequestMapping("/")
public String index(Model model, @AuthenticationPrincipal OAuth2User user, OAuth2AuthenticationToken authentication) {
public String index(Model model, @AuthenticationPrincipal OAuth2User user, OAuth2UserAuthenticationToken authentication) {
model.addAttribute("userName", user.getName());
model.addAttribute("clientName", authentication.getClientRegistration().getClientName());
model.addAttribute("clientName", authentication.getClientAuthentication().getClientRegistration().getClientName());
return "index";
}
@RequestMapping("/userinfo")
public String userinfo(Model model, OAuth2AuthenticationToken authentication) {
public String userinfo(Model model, OAuth2UserAuthenticationToken authentication) {
Map userAttributes = this.webClient
.filter(oauth2Credentials(authentication))
.get()
.uri(authentication.getClientRegistration().getProviderDetails().getUserInfoUri())
.uri(authentication.getClientAuthentication().getClientRegistration().getProviderDetails().getUserInfoUri())
.retrieve()
.bodyToMono(Map.class)
.block();
@@ -57,11 +57,11 @@ public class MainController {
return "userinfo";
}
private ExchangeFilterFunction oauth2Credentials(OAuth2AuthenticationToken authentication) {
private ExchangeFilterFunction oauth2Credentials(OAuth2UserAuthenticationToken authentication) {
return ExchangeFilterFunction.ofRequestProcessor(
clientRequest -> {
ClientRequest authorizedRequest = ClientRequest.from(clientRequest)
.header(HttpHeaders.AUTHORIZATION, "Bearer " + authentication.getAccessToken().getTokenValue())
.header(HttpHeaders.AUTHORIZATION, "Bearer " + authentication.getClientAuthentication().getAccessToken().getTokenValue())
.build();
return Mono.just(authorizedRequest);
});