Class Authorization
- java.lang.Object
-
- org.forgerock.opendj.rest2ldap.authz.Authorization
-
public final class Authorization extends Object
Factory methods to createFilter
performing authentication and authorizations.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static org.forgerock.http.Filter
newAuthorizationFilter(Iterable<? extends ConditionalFilters.ConditionalFilter> filters)
Creates a newFilter
in charge of injecting anLdapClientContext
.static ConditionalFilters.ConditionalFilter
newConditionalDirectConnectionFilter(LdapClient ldapClient)
Creates aConditionalFilters.ConditionalFilter
injecting anLdapClientContext
with a connection issued from the given connectionFactory.static ConditionalFilters.ConditionalFilter
newConditionalHttpBasicAuthenticationFilter(AuthenticationStrategy authenticationStrategy, Function<org.forgerock.http.protocol.Headers,Pair<String,String>,NeverThrowsException> credentialsExtractor)
Creates a newConditionalFilters.ConditionalFilter
performing authentication.static ConditionalFilters.ConditionalFilter
newConditionalOAuth2ResourceServerFilter(String realm, Set<String> scopes, org.forgerock.http.oauth2.AccessTokenResolver resolver, String authzIdTemplate)
Creates a new optional OAuth2 authorization filter configured with provided parameters.static org.forgerock.http.oauth2.AccessTokenResolver
newCtsAccessTokenResolver(LdapClient ldapClient, String ctsBaseDNTemplate)
Creates a new CTS access token resolver.static org.forgerock.http.oauth2.AccessTokenResolver
newFileAccessTokenResolver(Path tokenFolder)
Creates a new file access token resolver which should only be used for test purpose.static org.forgerock.http.Filter
newOAuth2ResourceServerFilter(String realm, Set<String> scopes, org.forgerock.http.oauth2.AccessTokenResolver resolver, String authzIdTemplate)
Creates a new OAuth2 authorization filter configured with provided parameters.static org.forgerock.http.Filter
newProxyAuthorizationFilter(LdapClient ldapClient)
Creates a filter injecting anLdapClientContext
given the information provided in theSecurityContext
.static org.forgerock.http.oauth2.AccessTokenResolver
newTokenIntrospectionAccessTokenResolver(org.forgerock.http.Handler httpClient, URI introspectionEndPointURL)
Creates a new RFC 7662 compliantAccessTokenResolver
.
-
-
-
Method Detail
-
newAuthorizationFilter
public static org.forgerock.http.Filter newAuthorizationFilter(Iterable<? extends ConditionalFilters.ConditionalFilter> filters)
Creates a newFilter
in charge of injecting anLdapClientContext
. ThisFilter
tries each of the provided filters until one can apply. If no filter can be applied, the last filter in the list will be applied allowing it to formulate a valid, implementation specific, error response.- Parameters:
filters
-Iterable
of authorizationConditionalFilters
to try. If empty, the returned filter will always respond with 403 Forbidden.- Returns:
- A new authorization
Filter
-
newConditionalHttpBasicAuthenticationFilter
public static ConditionalFilters.ConditionalFilter newConditionalHttpBasicAuthenticationFilter(AuthenticationStrategy authenticationStrategy, Function<org.forgerock.http.protocol.Headers,Pair<String,String>,NeverThrowsException> credentialsExtractor)
Creates a newConditionalFilters.ConditionalFilter
performing authentication. If authentication succeed, it injects aSecurityContext
with the authenticationId provided by the user. Otherwise, returns a HTTP 401 - Unauthorized response. The condition of thisConditionalFilters.ConditionalFilter
will return true if the supplied requests contains credentials information, false otherwise.- Parameters:
authenticationStrategy
-AuthenticationStrategy
to validate the user's provided credentials.credentialsExtractor
- Function to extract the credentials from the received request.- Returns:
- a new
ConditionalFilters.ConditionalFilter
- Throws:
NullPointerException
- if a parameter is null.
-
newConditionalDirectConnectionFilter
public static ConditionalFilters.ConditionalFilter newConditionalDirectConnectionFilter(LdapClient ldapClient)
Creates aConditionalFilters.ConditionalFilter
injecting anLdapClientContext
with a connection issued from the given connectionFactory. The condition is always true.- Parameters:
ldapClient
- The ldap client used to get theLdapClientSocket
to inject.- Returns:
- A new
ConditionalFilters.ConditionalFilter
. - Throws:
NullPointerException
- if connectionFactory is null
-
newProxyAuthorizationFilter
public static org.forgerock.http.Filter newProxyAuthorizationFilter(LdapClient ldapClient)
Creates a filter injecting anLdapClientContext
given the information provided in theSecurityContext
. The connection contained in the createdLdapClientContext
will add aProxiedAuthV2RequestControl
to each LDAP requests.- Parameters:
ldapClient
- The ldap client used to create the connection which will be injected in theLdapClientContext
- Returns:
- A new filter.
- Throws:
NullPointerException
- if connectionFactory is null
-
newTokenIntrospectionAccessTokenResolver
public static org.forgerock.http.oauth2.AccessTokenResolver newTokenIntrospectionAccessTokenResolver(org.forgerock.http.Handler httpClient, URI introspectionEndPointURL)
Creates a new RFC 7662 compliantAccessTokenResolver
.- Parameters:
httpClient
- Http client handler used to perform the requestintrospectionEndPointURL
- Introspect endpoint URL to use to resolve the access token.- Returns:
- A new
AccessTokenResolver
instance. - See Also:
- RFC-7662
-
newCtsAccessTokenResolver
public static org.forgerock.http.oauth2.AccessTokenResolver newCtsAccessTokenResolver(LdapClient ldapClient, String ctsBaseDNTemplate)
Creates a new CTS access token resolver.- Parameters:
ldapClient
- TheLdapClient
to use to perform search against the CTS.ctsBaseDNTemplate
- The base DN template to use to resolve the access token DN.- Returns:
- A new CTS access token resolver.
-
newFileAccessTokenResolver
public static org.forgerock.http.oauth2.AccessTokenResolver newFileAccessTokenResolver(Path tokenFolder)
Creates a new file access token resolver which should only be used for test purpose.- Parameters:
tokenFolder
- The folder where the access token to resolve must be stored.- Returns:
- A new file access token resolver which should only be used for test purpose.
-
newOAuth2ResourceServerFilter
public static org.forgerock.http.Filter newOAuth2ResourceServerFilter(String realm, Set<String> scopes, org.forgerock.http.oauth2.AccessTokenResolver resolver, String authzIdTemplate)
Creates a new OAuth2 authorization filter configured with provided parameters.- Parameters:
realm
- The realm to displays in error responses.scopes
- Scopes that an access token must have to be access a resource.resolver
- TheAccessTokenResolver
to use to resolve an access token.authzIdTemplate
- Authorization ID template.- Returns:
- A new OAuth2 authorization filter configured with provided parameters.
-
newConditionalOAuth2ResourceServerFilter
public static ConditionalFilters.ConditionalFilter newConditionalOAuth2ResourceServerFilter(String realm, Set<String> scopes, org.forgerock.http.oauth2.AccessTokenResolver resolver, String authzIdTemplate)
Creates a new optional OAuth2 authorization filter configured with provided parameters.This filter will be used only if an OAuth2 Authorization header is present in the incoming request.
- Parameters:
realm
- The realm to displays in error responses.scopes
- Scopes that an access token must have to be access a resource.resolver
- TheAccessTokenResolver
to use to resolve an access token.authzIdTemplate
- Authorization ID template.- Returns:
- A new OAuth2 authorization filter configured with provided parameters.
-
-