Package org.wildfly.security.auth.realm
Class FailoverSecurityRealm.FailoverRealmIdentity
- java.lang.Object
-
- org.wildfly.security.auth.realm.FailoverSecurityRealm.FailoverRealmIdentity
-
- All Implemented Interfaces:
RealmIdentity
- Enclosing class:
- FailoverSecurityRealm
protected abstract class FailoverSecurityRealm.FailoverRealmIdentity extends Object implements RealmIdentity
-
-
Field Summary
Fields Modifier and Type Field Description protected RealmIdentitydelegateprotected booleanfailed-
Fields inherited from interface org.wildfly.security.auth.server.RealmIdentity
ANONYMOUS, NON_EXISTENT
-
-
Constructor Summary
Constructors Constructor Description FailoverRealmIdentity(RealmIdentity identity)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description <C extends Credential,R>
RapplyToCredential(Class<C> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec, Function<C,R> function)Apply the given function to the acquired credential, if it is set and of the given type, algorithm, and parameters.<C extends Credential,R>
RapplyToCredential(Class<C> credentialType, String algorithmName, Function<C,R> function)Apply the given function to the acquired credential, if it is set and of the given type and algorithm.<C extends Credential,R>
RapplyToCredential(Class<C> credentialType, Function<C,R> function)Apply the given function to the acquired credential, if it is set and of the given type.protected voiddisableFailover()voiddispose()Dispose this realm identity after a completed authentication attempt.booleanexists()Determine if the identity exists in lieu of verifying or acquiring a credential.protected RealmIdentityfailover(RealmUnavailableException rue)AttributesgetAttributes()Get the attributes for the realm identity.AuthorizationIdentitygetAuthorizationIdentity()Get an authorization identity for this pre-authenticated identity.<C extends Credential>
CgetCredential(Class<C> credentialType)Acquire a credential of the given type.<C extends Credential>
CgetCredential(Class<C> credentialType, String algorithmName)Acquire a credential of the given type and algorithm name.<C extends Credential>
CgetCredential(Class<C> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec)Acquire a credential of the given type and algorithm name.SupportLevelgetCredentialAcquireSupport(Class<? extends Credential> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec)Determine whether a given credential type is definitely obtainable, possibly obtainable, or definitely not obtainable for this identity.SupportLevelgetEvidenceVerifySupport(Class<? extends Evidence> evidenceType, String algorithmName)Determine whether a given type of evidence is definitely verifiable, possibly verifiable, or definitely not verifiable.protected abstract RealmIdentitygetFailoverIdentity()PrincipalgetRealmIdentityPrincipal()Get the principal that canonically identifies the identity within the realm.voidupdateCredential(Credential credential)Update a credential of this realm identity.booleanverifyEvidence(Evidence evidence)Verify the given evidence against a credential of this identity.-
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.RealmIdentity
getCredentialAcquireSupport
-
-
-
-
Field Detail
-
delegate
protected RealmIdentity delegate
-
failed
protected boolean failed
-
-
Constructor Detail
-
FailoverRealmIdentity
public FailoverRealmIdentity(RealmIdentity identity)
-
-
Method Detail
-
getFailoverIdentity
protected abstract RealmIdentity getFailoverIdentity() throws RealmUnavailableException
- Throws:
RealmUnavailableException
-
getCredentialAcquireSupport
public SupportLevel getCredentialAcquireSupport(Class<? extends Credential> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec) throws RealmUnavailableException
Description copied from interface:RealmIdentityDetermine whether a given credential type is definitely obtainable, possibly obtainable, or definitely not obtainable for this identity.- Specified by:
getCredentialAcquireSupportin interfaceRealmIdentity- 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 type (may not be
null) - Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
getCredential
public <C extends Credential> C getCredential(Class<C> credentialType) throws RealmUnavailableException
Description copied from interface:RealmIdentityAcquire a credential of the given type.- Specified by:
getCredentialin interfaceRealmIdentity- Type Parameters:
C- the credential type- Parameters:
credentialType- the credential type class (must not benull)- Returns:
- the credential, or
nullif no such credential exists - 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:RealmIdentityDetermine whether a given type of evidence is definitely verifiable, possibly verifiable, or definitely not verifiable.- Specified by:
getEvidenceVerifySupportin interfaceRealmIdentity- 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
-
verifyEvidence
public boolean verifyEvidence(Evidence evidence) throws RealmUnavailableException
Description copied from interface:RealmIdentityVerify the given evidence against a credential of this identity. The credential to be used is selected based on the evidence type.- Specified by:
verifyEvidencein interfaceRealmIdentity- Parameters:
evidence- the evidence to verify- Returns:
trueif verification was successful,falseotherwise- Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
exists
public boolean exists() throws RealmUnavailableExceptionDescription copied from interface:RealmIdentityDetermine if the identity exists in lieu of verifying or acquiring a credential. This method is intended to be used to verify an identity for non-authentication purposes only. Implementations of this method should returnfalseup until the point it is known that a call toRealmIdentity.getAuthorizationIdentity()can successfully return an identity. If a realm can load an identity independently of credential acquisition and evidence verification if not already loaded it should be loaded at the time of this call to return an accurate result.- Specified by:
existsin interfaceRealmIdentity- Returns:
trueif the identity exists in this realm,falseotherwise- Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
updateCredential
public void updateCredential(Credential credential) throws RealmUnavailableException
Description copied from interface:RealmIdentityUpdate a credential of this realm identity.- Specified by:
updateCredentialin interfaceRealmIdentity- Parameters:
credential- the new credential (must not benull)- Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
getRealmIdentityPrincipal
public Principal getRealmIdentityPrincipal()
Description copied from interface:RealmIdentityGet the principal that canonically identifies the identity within the realm. This method may return the principal object which was passed in as a parameter toSecurityRealm.getRealmIdentity(Principal)(a.k.a. domain principal), but is not required to do so. Any existent realm identity (i.e. any identity which returnstrueon invocation ofRealmIdentity.exists()) must return a non-nullprincipal.- Specified by:
getRealmIdentityPrincipalin interfaceRealmIdentity- Returns:
- the principal for this realm identity (may not be
null)
-
getCredential
public <C extends Credential> C getCredential(Class<C> credentialType, String algorithmName) throws RealmUnavailableException
Description copied from interface:RealmIdentityAcquire a credential of the given type and algorithm name. Realms which support more than one credential of a given type must override this method.- Specified by:
getCredentialin interfaceRealmIdentity- Type Parameters:
C- the credential type- Parameters:
credentialType- the credential type class (must not benull)algorithmName- the algorithm name, ornullif any algorithm is acceptable or the credential type does not support algorithm names- Returns:
- the credential, or
nullif no such credential exists - Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
getCredential
public <C extends Credential> C getCredential(Class<C> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec) throws RealmUnavailableException
Description copied from interface:RealmIdentityAcquire a credential of the given type and algorithm name. Realms which support more than one credential of a given type and algorithm must override this method.- Specified by:
getCredentialin interfaceRealmIdentity- Type Parameters:
C- the credential type- Parameters:
credentialType- the credential type class (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 credential, or
nullif no such credential exists - Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
applyToCredential
public <C extends Credential,R> R applyToCredential(Class<C> credentialType, Function<C,R> function) throws RealmUnavailableException
Description copied from interface:RealmIdentityApply the given function to the acquired credential, if it is set and of the given type.- Specified by:
applyToCredentialin interfaceRealmIdentity- Type Parameters:
C- the credential typeR- the return type- Parameters:
credentialType- the credential type class (must not benull)function- the function to apply (must not benull)- Returns:
- the result of the function, or
nullif the criteria are not met - Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
applyToCredential
public <C extends Credential,R> R applyToCredential(Class<C> credentialType, String algorithmName, Function<C,R> function) throws RealmUnavailableException
Description copied from interface:RealmIdentityApply the given function to the acquired credential, if it is set and of the given type and algorithm.- Specified by:
applyToCredentialin interfaceRealmIdentity- Type Parameters:
C- the credential typeR- the return type- Parameters:
credentialType- the credential type class (must not benull)algorithmName- the algorithm name, ornullif any algorithm is acceptable or the credential type does not support algorithm namesfunction- the function to apply (must not benull)- Returns:
- the result of the function, or
nullif the criteria are not met - Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
applyToCredential
public <C extends Credential,R> R applyToCredential(Class<C> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec, Function<C,R> function) throws RealmUnavailableException
Description copied from interface:RealmIdentityApply the given function to the acquired credential, if it is set and of the given type, algorithm, and parameters.- Specified by:
applyToCredentialin interfaceRealmIdentity- Type Parameters:
C- the credential typeR- the return type- Parameters:
credentialType- the credential type class (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 parametersfunction- the function to apply (must not benull)- Returns:
- the result of the function, or
nullif the criteria are not met - Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
dispose
public void dispose()
Description copied from interface:RealmIdentityDispose this realm identity after a completed authentication attempt.- Specified by:
disposein interfaceRealmIdentity
-
getAuthorizationIdentity
public AuthorizationIdentity getAuthorizationIdentity() throws RealmUnavailableException
Description copied from interface:RealmIdentityGet an authorization identity for this pre-authenticated identity.- Specified by:
getAuthorizationIdentityin interfaceRealmIdentity- Returns:
- the authorization identity (may not be
null) - Throws:
RealmUnavailableException- if the realm is not able to handle requests for any reason
-
getAttributes
public Attributes getAttributes() throws RealmUnavailableException
Description copied from interface:RealmIdentityGet the attributes for the realm identity.- Specified by:
getAttributesin interfaceRealmIdentity- Returns:
- the attributes, or
nullif the implementing class does not support getting attributes - Throws:
RealmUnavailableException- if accessing the attributes fails for some reason
-
failover
protected RealmIdentity failover(RealmUnavailableException rue) throws RealmUnavailableException
- Throws:
RealmUnavailableException
-
disableFailover
protected void disableFailover()
-
-