@Override public Mono<OidcUser> loadUser(OidcUserRequest userRequest) throws OAuth2AuthenticationException { Assert.notNull(userRequest, "userRequest cannot be null"); return getUserInfo(userRequest) .map(userInfo -> new OidcUserAuthority(userRequest.getIdToken(), userInfo)) .defaultIfEmpty(new OidcUserAuthority(userRequest.getIdToken(), null)) .map(authority -> { OidcUserInfo userInfo = authority.getUserInfo(); Set<GrantedAuthority> authorities = new HashSet<>(); authorities.add(authority); String userNameAttributeName = userRequest.getClientRegistration() .getProviderDetails().getUserInfoEndpoint().getUserNameAttributeName(); if (StringUtils.hasText(userNameAttributeName)) { return new DefaultOidcUser(authorities, userRequest.getIdToken(), userInfo, userNameAttributeName); } else { return new DefaultOidcUser(authorities, userRequest.getIdToken(), userInfo); } }); }
@Override public Mono<OidcUser> loadUser(OidcUserRequest userRequest) throws OAuth2AuthenticationException { Assert.notNull(userRequest, "userRequest cannot be null"); return getUserInfo(userRequest) .map(userInfo -> new OidcUserAuthority(userRequest.getIdToken(), userInfo)) .defaultIfEmpty(new OidcUserAuthority(userRequest.getIdToken(), null)) .map(authority -> { OidcUserInfo userInfo = authority.getUserInfo(); Set<GrantedAuthority> authorities = new HashSet<>(); authorities.add(authority); String userNameAttributeName = userRequest.getClientRegistration() .getProviderDetails().getUserInfoEndpoint().getUserNameAttributeName(); if (StringUtils.hasText(userNameAttributeName)) { return new DefaultOidcUser(authorities, userRequest.getIdToken(), userInfo, userNameAttributeName); } else { return new DefaultOidcUser(authorities, userRequest.getIdToken(), userInfo); } }); }