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
ASecurityRealm
implementation that makes use of the legacy properties files.- Author:
- Darran Lofthouse
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
LegacyPropertiesSecurityRealm.AccountEntry
static class
LegacyPropertiesSecurityRealm.Builder
A builder for legacy properties security realms.private static class
LegacyPropertiesSecurityRealm.LoadedState
-
Field Summary
Fields Modifier and Type Field Description private static String
COMMENT_PREFIX1
private static String
COMMENT_PREFIX2
private String
defaultRealm
private String
groupsAttribute
private Charset
hashCharset
private Encoding
hashEncoding
private AtomicReference<LegacyPropertiesSecurityRealm.LoadedState>
loadedState
private boolean
plainText
private Supplier<Provider[]>
providers
private static String
REALM_COMMENT_PREFIX
private static String
REALM_COMMENT_SUFFIX
-
Fields inherited from interface org.wildfly.security.auth.server.SecurityRealm
EMPTY_REALM
-
-
Constructor Summary
Constructors Modifier Constructor Description private
LegacyPropertiesSecurityRealm(LegacyPropertiesSecurityRealm.Builder builder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static LegacyPropertiesSecurityRealm.Builder
builder()
Obtain a newLegacyPropertiesSecurityRealm.Builder
capable of building aLegacyPropertiesSecurityRealm
.SupportLevel
getCredentialAcquireSupport(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.SupportLevel
getEvidenceVerifySupport(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.long
getLoadTime()
Get the time when the realm was last loaded.private PasswordFactory
getPasswordFactory(String algorithm)
RealmIdentity
getRealmIdentity(Principal principal)
Get a handle for to the identity for the given principal in the context of this security realm.void
load(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:SecurityRealm
Get 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:
getRealmIdentity
in interfaceSecurityRealm
- Parameters:
principal
- the principal which identifies the identity within the realm (must not benull
)- Returns:
- the
RealmIdentity
for 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: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 interfaceSecurityRealm
- Parameters:
credentialType
- the exact credential type (must not benull
)algorithmName
- the algorithm name, ornull
if any algorithm is acceptable or the credential type does not support algorithm namesparameterSpec
- the algorithm parameters to match, ornull
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 interfaceSecurityRealm
- Parameters:
evidenceType
- the type of evidence to be verified (must not benull
)algorithmName
- the algorithm name, ornull
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
-
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.Builder
capable of building aLegacyPropertiesSecurityRealm
.- Returns:
- a new
LegacyPropertiesSecurityRealm.Builder
capable of building aLegacyPropertiesSecurityRealm
.
-
-