Class TokenSecurityRealm
- java.lang.Object
-
- org.wildfly.security.auth.realm.token.TokenSecurityRealm
-
- All Implemented Interfaces:
SecurityRealm
public final class TokenSecurityRealm extends Object implements SecurityRealm
A
SecurityRealmcapable of building identities based on different security token formats based on aTokenValidator.- Author:
- Pedro Igor
- See Also:
TokenValidator
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTokenSecurityRealm.Builder(package private) classTokenSecurityRealm.TokenRealmIdentity
-
Field Summary
Fields Modifier and Type Field Description private Function<Attributes,Principal>claimToPrincipalA function that maps the set of token claims to a Principal.private StringprincipalClaimNameprivate TokenValidatorstrategy-
Fields inherited from interface org.wildfly.security.auth.server.SecurityRealm
EMPTY_REALM
-
-
Constructor Summary
Constructors Constructor Description TokenSecurityRealm(TokenSecurityRealm.Builder configuration)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static TokenSecurityRealm.Builderbuilder()Returns aTokenSecurityRealm.Builderinstance that can be used to configure and create aTokenSecurityRealm.private PrincipaldefaultClaimToPrincipal(Attributes claims)The default implementation of the claimToPrincipal mapping function.SupportLevelgetCredentialAcquireSupport(Class<? extends Credential> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec)Determine whether a credential of the given type and algorithm is definitely obtainable, possibly obtainable (for] some identities), or definitely not obtainable.SupportLevelgetEvidenceVerifySupport(Class<? extends Evidence> evidenceType, String algorithmName)Determine whether a given type of evidence is definitely verifiable, possibly verifiable (for some identities), or definitely not verifiable.RealmIdentitygetRealmIdentity(Evidence evidence)Get a handle for to the identity for the given evidence in the context of this security realm.private booleanisBearerTokenEvidence(Class<?> evidenceType)private booleanisBearerTokenEvidence(Evidence evidence)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.wildfly.security.auth.server.SecurityRealm
getCredentialAcquireSupport, getRealmIdentity, getRealmIdentity, handleRealmEvent
-
-
-
-
Field Detail
-
strategy
private final TokenValidator strategy
-
principalClaimName
private final String principalClaimName
-
claimToPrincipal
private final Function<Attributes,Principal> claimToPrincipal
A function that maps the set of token claims to a Principal.
-
-
Constructor Detail
-
TokenSecurityRealm
TokenSecurityRealm(TokenSecurityRealm.Builder configuration)
-
-
Method Detail
-
builder
public static TokenSecurityRealm.Builder builder()
Returns aTokenSecurityRealm.Builderinstance that can be used to configure and create aTokenSecurityRealm.- Returns:
- the
TokenSecurityRealm.Builder
-
getRealmIdentity
public RealmIdentity getRealmIdentity(Evidence evidence)
Description copied from interface:SecurityRealmGet a handle for to the identity for the given evidence in the context of this security realm. Any validation / name mapping is an implementation detail for the realm. The identity may or may not exist. The returned handle must be cleaned up by a call toRealmIdentity.dispose(). Where this method is used to obtain aRealmIdentityprior to evidence verification the methodRealmIdentity.getEvidenceVerifySupport(Class, String)will be used to verify if the identity is usable.- Specified by:
getRealmIdentityin interfaceSecurityRealm- Parameters:
evidence- an evidence instance which identifies the identity within the realm (must not benull)- Returns:
- the
RealmIdentityfor the provided evidence (notnull)
-
getCredentialAcquireSupport
public SupportLevel getCredentialAcquireSupport(Class<? extends Credential> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec) throws RealmUnavailableException
Description copied from interface:SecurityRealmDetermine whether a credential of the given type and algorithm is definitely obtainable, possibly obtainable (for] some identities), or definitely not obtainable.- Specified by:
getCredentialAcquireSupportin interfaceSecurityRealm- Parameters:
credentialType- the exact credential type (must not benull)algorithmName- the algorithm name, ornullif any algorithm is acceptable or the credential type does not support algorithm namesparameterSpec- the algorithm parameters to match, ornullif any parameters are acceptable or the credential type does not support algorithm parameters- Returns:
- the level of support for this credential
- Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
getEvidenceVerifySupport
public SupportLevel getEvidenceVerifySupport(Class<? extends Evidence> evidenceType, String algorithmName) throws RealmUnavailableException
Description copied from interface:SecurityRealmDetermine whether a given type of evidence is definitely verifiable, possibly verifiable (for some identities), or definitely not verifiable.- Specified by:
getEvidenceVerifySupportin interfaceSecurityRealm- Parameters:
evidenceType- the type of evidence to be verified (must not benull)algorithmName- the algorithm name, ornullif any algorithm is acceptable or the evidence type does not support algorithm names- Returns:
- the level of support for this evidence type
- Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
isBearerTokenEvidence
private boolean isBearerTokenEvidence(Evidence evidence)
-
isBearerTokenEvidence
private boolean isBearerTokenEvidence(Class<?> evidenceType)
-
defaultClaimToPrincipal
private Principal defaultClaimToPrincipal(Attributes claims)
The default implementation of the claimToPrincipal mapping function. Takes the principalClaimName claim value and wraps it in a NamePrincipal.- Parameters:
claims- - token claims- Returns:
- the NamePrincipal or null on failure to extract claim value
-
-