Class DistributedSecurityRealm

  • All Implemented Interfaces:
    SecurityRealm

    public class DistributedSecurityRealm
    extends Object
    implements SecurityRealm
    A realm for authentication and authorization of identities distributed between multiple realms.
    Author:
    Martin Mazanek
    • Constructor Detail

      • DistributedSecurityRealm

        public DistributedSecurityRealm​(SecurityRealm... securityRealms)
      • DistributedSecurityRealm

        public DistributedSecurityRealm​(boolean ignoreUnavailableRealms,
                                        Consumer<Integer> unavailableRealmCallback,
                                        SecurityRealm... securityRealms)
        Construct a new instance.
        Parameters:
        ignoreUnavailableRealms - allow to specify that the search should continue on to the next realm if a realm happens to be unavailable
        unavailableRealmCallback - a callback that can be used to emit realm unavailability, can be null
        securityRealms - references to one or more security realms for authentication and authorization
    • 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