Class FailoverSecurityRealm

  • All Implemented Interfaces:
    SecurityRealm

    public class FailoverSecurityRealm
    extends Object
    implements SecurityRealm
    A realm which wraps one realm and fails over to another in case the first is unavailable.
    Author:
    Martin Mazanek
    • Constructor Detail

      • FailoverSecurityRealm

        public FailoverSecurityRealm​(SecurityRealm delegateRealm,
                                     SecurityRealm failoverRealm,
                                     Consumer<RealmUnavailableException> failoverCallback)
        Construct a new instance.
        Parameters:
        delegateRealm - the wrapped realm
        failoverRealm - the realm to use in case delegateRealm is unavailable
        failoverCallback - callback function that gets called in case delegateRealm is unavailable
    • Method Detail

      • getCredentialAcquireSupport

        public SupportLevel getCredentialAcquireSupport​(Class<? extends Credential> credentialType,
                                                        String algorithmName,
                                                        AlgorithmParameterSpec parameterSpec)
                                                 throws RealmUnavailableException
        Description copied from interface: SecurityRealm
        Determine whether a credential of the given type and algorithm is definitely obtainable, possibly obtainable (for] some identities), or definitely not obtainable.
        Specified by:
        getCredentialAcquireSupport in interface SecurityRealm
        Parameters:
        credentialType - the exact credential type (must not be null)
        algorithmName - the algorithm name, or null if any algorithm is acceptable or the credential type does not support algorithm names
        parameterSpec - the algorithm parameters to match, or null if 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: SecurityRealm
        Determine whether a given type of evidence is definitely verifiable, possibly verifiable (for some identities), or definitely not verifiable.
        Specified by:
        getEvidenceVerifySupport in interface SecurityRealm
        Parameters:
        evidenceType - the type of evidence to be verified (must not be null)
        algorithmName - the algorithm name, or null if 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