Package org.wildfly.security.auth.realm
Class LegacyPropertiesSecurityRealm
- java.lang.Object
-
- org.wildfly.security.auth.realm.LegacyPropertiesSecurityRealm
-
- All Implemented Interfaces:
SecurityRealm
public class LegacyPropertiesSecurityRealm extends Object implements SecurityRealm
ASecurityRealmimplementation that makes use of the legacy properties files.- Author:
- Darran Lofthouse
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classLegacyPropertiesSecurityRealm.AccountEntrystatic classLegacyPropertiesSecurityRealm.BuilderA builder for legacy properties security realms.private static classLegacyPropertiesSecurityRealm.LoadedState
-
Field Summary
Fields Modifier and Type Field Description private static StringCOMMENT_PREFIX1private static StringCOMMENT_PREFIX2private StringdefaultRealmprivate StringgroupsAttributeprivate CharsethashCharsetprivate EncodinghashEncodingprivate AtomicReference<LegacyPropertiesSecurityRealm.LoadedState>loadedStateprivate booleanplainTextprivate Supplier<Provider[]>providersprivate static StringREALM_COMMENT_PREFIXprivate static StringREALM_COMMENT_SUFFIX-
Fields inherited from interface org.wildfly.security.auth.server.SecurityRealm
EMPTY_REALM
-
-
Constructor Summary
Constructors Modifier Constructor Description privateLegacyPropertiesSecurityRealm(LegacyPropertiesSecurityRealm.Builder builder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static LegacyPropertiesSecurityRealm.Builderbuilder()Obtain a newLegacyPropertiesSecurityRealm.Buildercapable of building aLegacyPropertiesSecurityRealm.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.longgetLoadTime()Get the time when the realm was last loaded.private PasswordFactorygetPasswordFactory(String algorithm)RealmIdentitygetRealmIdentity(Principal principal)Get a handle for to the identity for the given principal in the context of this security realm.voidload(InputStream usersStream, InputStream groupsStream)Loads this properties security realm from the given user and groups input streams.-
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
-
COMMENT_PREFIX1
private static final String COMMENT_PREFIX1
- See Also:
- Constant Field Values
-
COMMENT_PREFIX2
private static final String COMMENT_PREFIX2
- See Also:
- Constant Field Values
-
REALM_COMMENT_PREFIX
private static final String REALM_COMMENT_PREFIX
- See Also:
- Constant Field Values
-
REALM_COMMENT_SUFFIX
private static final String REALM_COMMENT_SUFFIX
- See Also:
- Constant Field Values
-
defaultRealm
private final String defaultRealm
-
plainText
private final boolean plainText
-
hashEncoding
private final Encoding hashEncoding
-
hashCharset
private final Charset hashCharset
-
groupsAttribute
private final String groupsAttribute
-
loadedState
private final AtomicReference<LegacyPropertiesSecurityRealm.LoadedState> loadedState
-
-
Constructor Detail
-
LegacyPropertiesSecurityRealm
private LegacyPropertiesSecurityRealm(LegacyPropertiesSecurityRealm.Builder builder) throws IOException
- Throws:
IOException
-
-
Method Detail
-
getRealmIdentity
public RealmIdentity getRealmIdentity(Principal principal) throws RealmUnavailableException
Description copied from interface:SecurityRealmGet a handle for to the identity for the given principal 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().- Specified by:
getRealmIdentityin interfaceSecurityRealm- Parameters:
principal- the principal which identifies the identity within the realm (must not benull)- Returns:
- the
RealmIdentityfor the provided principal (notnull) - Throws:
RealmUnavailableException
-
getPasswordFactory
private PasswordFactory getPasswordFactory(String algorithm)
-
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
-
load
public void load(InputStream usersStream, InputStream groupsStream) throws IOException
Loads this properties security realm from the given user and groups input streams.- Parameters:
usersStream- the input stream from which the realm users are loadedgroupsStream- the input stream from which the roles of realm users are loaded- Throws:
IOException- if there is problem while reading the input streams or invalid content is loaded from streams
-
getLoadTime
public long getLoadTime()
Get the time when the realm was last loaded.- Returns:
- the time when the realm was last loaded (number of milliseconds since the standard base time)
-
builder
public static LegacyPropertiesSecurityRealm.Builder builder()
Obtain a newLegacyPropertiesSecurityRealm.Buildercapable of building aLegacyPropertiesSecurityRealm.- Returns:
- a new
LegacyPropertiesSecurityRealm.Buildercapable of building aLegacyPropertiesSecurityRealm.
-
-