Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,8 @@ public static final class Builder {

private String clientSecret;

private Converter<OAuth2TokenIntrospectionClaimAccessor, ? extends OAuth2AuthenticatedPrincipal> authenticationConverter;

private Builder(String introspectionUri) {
this.introspectionUri = introspectionUri;
}
Expand Down Expand Up @@ -355,6 +357,22 @@ public Builder clientSecret(String clientSecret) {
return this;
}

/**
* Sets the {@link Converter} used for converting the
* {@link OAuth2TokenIntrospectionClaimAccessor} to an
* {@link OAuth2AuthenticatedPrincipal}.
* @param authenticationConverter the {@link Converter} used for converting to an
* {@link OAuth2AuthenticatedPrincipal}
* @return the {@link SpringOpaqueTokenIntrospector.Builder}
* @since 7.x.x
*/
public Builder authenticationConverter(
Converter<OAuth2TokenIntrospectionClaimAccessor, ? extends OAuth2AuthenticatedPrincipal> authenticationConverter) {
Assert.notNull(authenticationConverter, "authenticationConverter cannot be null");
this.authenticationConverter = authenticationConverter;
return this;
}

/**
* Creates a {@code SpringOpaqueTokenIntrospector}
* @return the {@link SpringOpaqueTokenIntrospector}
Expand All @@ -363,7 +381,12 @@ public Builder clientSecret(String clientSecret) {
public SpringOpaqueTokenIntrospector build() {
RestTemplate restTemplate = new RestTemplate();
restTemplate.getInterceptors().add(new BasicAuthenticationInterceptor(this.clientId, this.clientSecret));
return new SpringOpaqueTokenIntrospector(this.introspectionUri, restTemplate);
SpringOpaqueTokenIntrospector introspector = new SpringOpaqueTokenIntrospector(this.introspectionUri,
restTemplate);
if (this.authenticationConverter != null) {
introspector.setAuthenticationConverter(this.authenticationConverter);
}
return introspector;
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,8 @@ public static final class Builder {

private String clientSecret;

private Converter<OAuth2TokenIntrospectionClaimAccessor, Mono<? extends OAuth2AuthenticatedPrincipal>> authenticationConverter;

private Builder(String introspectionUri) {
this.introspectionUri = introspectionUri;
}
Expand Down Expand Up @@ -308,6 +310,22 @@ public Builder clientSecret(String clientSecret) {
return this;
}

/**
* Sets the {@link Converter} used for converting the
* {@link OAuth2TokenIntrospectionClaimAccessor} to an
* {@link OAuth2AuthenticatedPrincipal}.
* @param authenticationConverter the {@link Converter} used for converting to an
* {@link OAuth2AuthenticatedPrincipal}
* @return the {@link SpringReactiveOpaqueTokenIntrospector.Builder}
* @since 7.x.x
*/
public Builder authenticationConverter(
Converter<OAuth2TokenIntrospectionClaimAccessor, Mono<? extends OAuth2AuthenticatedPrincipal>> authenticationConverter) {
Assert.notNull(authenticationConverter, "authenticationConverter cannot be null");
this.authenticationConverter = authenticationConverter;
return this;
}

/**
* Creates a {@code SpringReactiveOpaqueTokenIntrospector}
* @return the {@link SpringReactiveOpaqueTokenIntrospector}
Expand All @@ -317,7 +335,12 @@ public SpringReactiveOpaqueTokenIntrospector build() {
WebClient webClient = WebClient.builder()
.defaultHeaders((h) -> h.setBasicAuth(this.clientId, this.clientSecret))
.build();
return new SpringReactiveOpaqueTokenIntrospector(this.introspectionUri, webClient);
SpringReactiveOpaqueTokenIntrospector introspector = new SpringReactiveOpaqueTokenIntrospector(
this.introspectionUri, webClient);
if (this.authenticationConverter != null) {
introspector.setAuthenticationConverter(this.authenticationConverter);
}
return introspector;
}

}
Expand Down
Loading