Search in sources :

Example 1 with ProviderDetails

use of org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails in project spring-security by spring-projects.

the class OidcUserService method getUser.

private OidcUser getUser(OidcUserRequest userRequest, OidcUserInfo userInfo, Set<GrantedAuthority> authorities) {
    ProviderDetails providerDetails = userRequest.getClientRegistration().getProviderDetails();
    String userNameAttributeName = providerDetails.getUserInfoEndpoint().getUserNameAttributeName();
    if (StringUtils.hasText(userNameAttributeName)) {
        return new DefaultOidcUser(authorities, userRequest.getIdToken(), userInfo, userNameAttributeName);
    }
    return new DefaultOidcUser(authorities, userRequest.getIdToken(), userInfo);
}
Also used : ProviderDetails(org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails) DefaultOidcUser(org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser)

Example 2 with ProviderDetails

use of org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails in project spring-security by spring-projects.

the class OidcClientInitiatedLogoutSuccessHandler method endSessionEndpoint.

private URI endSessionEndpoint(ClientRegistration clientRegistration) {
    if (clientRegistration != null) {
        ProviderDetails providerDetails = clientRegistration.getProviderDetails();
        Object endSessionEndpoint = providerDetails.getConfigurationMetadata().get("end_session_endpoint");
        if (endSessionEndpoint != null) {
            return URI.create(endSessionEndpoint.toString());
        }
    }
    return null;
}
Also used : ProviderDetails(org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails)

Example 3 with ProviderDetails

use of org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails in project spring-security by spring-projects.

the class CommonOAuth2ProviderTests method getBuilderWhenGitHubShouldHaveGitHubSettings.

@Test
public void getBuilderWhenGitHubShouldHaveGitHubSettings() {
    ClientRegistration registration = build(CommonOAuth2Provider.GITHUB);
    ProviderDetails providerDetails = registration.getProviderDetails();
    assertThat(providerDetails.getAuthorizationUri()).isEqualTo("https://github.com/login/oauth/authorize");
    assertThat(providerDetails.getTokenUri()).isEqualTo("https://github.com/login/oauth/access_token");
    assertThat(providerDetails.getUserInfoEndpoint().getUri()).isEqualTo("https://api.github.com/user");
    assertThat(providerDetails.getUserInfoEndpoint().getUserNameAttributeName()).isEqualTo("id");
    assertThat(providerDetails.getJwkSetUri()).isNull();
    assertThat(registration.getClientAuthenticationMethod()).isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_BASIC);
    assertThat(registration.getAuthorizationGrantType()).isEqualTo(AuthorizationGrantType.AUTHORIZATION_CODE);
    assertThat(registration.getRedirectUri()).isEqualTo(DEFAULT_REDIRECT_URL);
    assertThat(registration.getScopes()).containsOnly("read:user");
    assertThat(registration.getClientName()).isEqualTo("GitHub");
    assertThat(registration.getRegistrationId()).isEqualTo("123");
}
Also used : ClientRegistration(org.springframework.security.oauth2.client.registration.ClientRegistration) ProviderDetails(org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails) Test(org.junit.jupiter.api.Test)

Example 4 with ProviderDetails

use of org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails in project spring-security by spring-projects.

the class CommonOAuth2ProviderTests method getBuilderWhenGoogleShouldHaveGoogleSettings.

@Test
public void getBuilderWhenGoogleShouldHaveGoogleSettings() {
    ClientRegistration registration = build(CommonOAuth2Provider.GOOGLE);
    ProviderDetails providerDetails = registration.getProviderDetails();
    assertThat(providerDetails.getAuthorizationUri()).isEqualTo("https://accounts.google.com/o/oauth2/v2/auth");
    assertThat(providerDetails.getTokenUri()).isEqualTo("https://www.googleapis.com/oauth2/v4/token");
    assertThat(providerDetails.getUserInfoEndpoint().getUri()).isEqualTo("https://www.googleapis.com/oauth2/v3/userinfo");
    assertThat(providerDetails.getUserInfoEndpoint().getUserNameAttributeName()).isEqualTo(IdTokenClaimNames.SUB);
    assertThat(providerDetails.getJwkSetUri()).isEqualTo("https://www.googleapis.com/oauth2/v3/certs");
    assertThat(providerDetails.getIssuerUri()).isEqualTo("https://accounts.google.com");
    assertThat(registration.getClientAuthenticationMethod()).isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_BASIC);
    assertThat(registration.getAuthorizationGrantType()).isEqualTo(AuthorizationGrantType.AUTHORIZATION_CODE);
    assertThat(registration.getRedirectUri()).isEqualTo(DEFAULT_REDIRECT_URL);
    assertThat(registration.getScopes()).containsOnly("openid", "profile", "email");
    assertThat(registration.getClientName()).isEqualTo("Google");
    assertThat(registration.getRegistrationId()).isEqualTo("123");
}
Also used : ClientRegistration(org.springframework.security.oauth2.client.registration.ClientRegistration) ProviderDetails(org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails) Test(org.junit.jupiter.api.Test)

Example 5 with ProviderDetails

use of org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails in project spring-security by spring-projects.

the class CommonOAuth2ProviderTests method getBuilderWhenFacebookShouldHaveFacebookSettings.

@Test
public void getBuilderWhenFacebookShouldHaveFacebookSettings() {
    ClientRegistration registration = build(CommonOAuth2Provider.FACEBOOK);
    ProviderDetails providerDetails = registration.getProviderDetails();
    assertThat(providerDetails.getAuthorizationUri()).isEqualTo("https://www.facebook.com/v2.8/dialog/oauth");
    assertThat(providerDetails.getTokenUri()).isEqualTo("https://graph.facebook.com/v2.8/oauth/access_token");
    assertThat(providerDetails.getUserInfoEndpoint().getUri()).isEqualTo("https://graph.facebook.com/me?fields=id,name,email");
    assertThat(providerDetails.getUserInfoEndpoint().getUserNameAttributeName()).isEqualTo("id");
    assertThat(providerDetails.getJwkSetUri()).isNull();
    assertThat(registration.getClientAuthenticationMethod()).isEqualTo(ClientAuthenticationMethod.CLIENT_SECRET_POST);
    assertThat(registration.getAuthorizationGrantType()).isEqualTo(AuthorizationGrantType.AUTHORIZATION_CODE);
    assertThat(registration.getRedirectUri()).isEqualTo(DEFAULT_REDIRECT_URL);
    assertThat(registration.getScopes()).containsOnly("public_profile", "email");
    assertThat(registration.getClientName()).isEqualTo("Facebook");
    assertThat(registration.getRegistrationId()).isEqualTo("123");
}
Also used : ClientRegistration(org.springframework.security.oauth2.client.registration.ClientRegistration) ProviderDetails(org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails) Test(org.junit.jupiter.api.Test)

Aggregations

ProviderDetails (org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails)8 Test (org.junit.jupiter.api.Test)6 ClientRegistration (org.springframework.security.oauth2.client.registration.ClientRegistration)6 MockWebServer (okhttp3.mockwebserver.MockWebServer)1 DefaultOidcUser (org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser)1