Class FileSystemSecurityRealm
java.lang.Object
org.wildfly.security.auth.realm.FileSystemSecurityRealm
- All Implemented Interfaces:
CacheableSecurityRealm, org.wildfly.security.auth.server.ModifiableSecurityRealm, org.wildfly.security.auth.server.SecurityRealm
public final class FileSystemSecurityRealm
extends Object
implements org.wildfly.security.auth.server.ModifiableSecurityRealm, CacheableSecurityRealm
A simple filesystem-backed security realm.
- Author:
- David M. Lloyd
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classprotected static final class -
Field Summary
Fields inherited from interface org.wildfly.security.auth.server.SecurityRealm
EMPTY_REALM -
Constructor Summary
ConstructorsConstructorDescriptionFileSystemSecurityRealm(Path root) Construct a new instance with 2 levels of hashing.FileSystemSecurityRealm(Path root, int levels) Construct a new instance.FileSystemSecurityRealm(Path root, int levels, Supplier<Provider[]> providers) FileSystemSecurityRealm(Path root, int levels, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset) Construct a new instance.FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels) Construct a new instance.FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels, boolean encoded) Construct a new instance.FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels, boolean encoded, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset) Construct a new instance.FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels, boolean encoded, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset, Supplier<Provider[]> providers, SecretKey secretKey, PrivateKey privateKey, PublicKey publicKey) Construct a new instance.FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels, boolean encoded, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset, SecretKey secretKey) Construct a new instance.FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset) Construct a new instance.FileSystemSecurityRealm(Path root, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset) Construct a new instance with 2 levels of hashing. -
Method Summary
Modifier and TypeMethodDescriptionbuilder()Construct a new instance of the FileSystemSecurityRealmBuilder.org.wildfly.security.auth.SupportLevelgetCredentialAcquireSupport(Class<? extends org.wildfly.security.credential.Credential> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec) org.wildfly.security.auth.SupportLevelgetEvidenceVerifySupport(Class<? extends org.wildfly.security.evidence.Evidence> evidenceType, String algorithmName) org.wildfly.security.auth.server.RealmIdentitygetRealmIdentity(Principal principal) org.wildfly.security.auth.server.ModifiableRealmIdentitygetRealmIdentityForUpdate(Principal principal) org.wildfly.security.auth.server.ModifiableRealmIdentityIteratorbooleanChecks if the FileSystemSecurityRealm has Integrity checking enabledvoidregisterIdentityChangeListener(Consumer<Principal> listener) Register a listener that should be invoked by this realm in order to notify the caching layer about changes to a specific identity.voidRe-generate the signatures for all the identities in this realm.Verify the integrity of each identity file in this realm.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.wildfly.security.auth.server.ModifiableSecurityRealm
getRealmIdentityForUpdateMethods inherited from interface org.wildfly.security.auth.server.SecurityRealm
getCredentialAcquireSupport, getRealmIdentity, getRealmIdentity, handleRealmEvent
-
Constructor Details
-
FileSystemSecurityRealm
public FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels, boolean encoded, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset, Supplier<Provider[]> providers, SecretKey secretKey, PrivateKey privateKey, PublicKey publicKey) Construct a new instance. Construction with enabled security manager requirescreateSecurityRealmElytronPermission.- Parameters:
root- the root path of the identity storenameRewriter- the name rewriter to apply to looked up nameslevels- the number of levels of directory hashing to applyencoded- whether identity names should be BASE32 encoded before using as filename (only applies if the security realm is unencrypted)hashEncoding- the string format for the hashed passwords. Uses Base64 by default.hashCharset- the character set to use when converting password strings to a byte array. Uses UTF-8 by default.providers- The providers suppliersecretKey- the SecretKey used to encrypt and decrypt the security realm (ifnull, the security realm will be unencrypted)privateKey- the PrivateKey used to verify the integrity of the security realm (ifnull, the security realm will not verify integrity)publicKey- the PublicKey used to verify the integrity of the security realm (ifnull, the security realm will not verify integrity)
-
FileSystemSecurityRealm
public FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels, boolean encoded, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset, SecretKey secretKey) Construct a new instance. Construction with enabled security manager requirescreateSecurityRealmElytronPermission.- Parameters:
root- the root path of the identity storenameRewriter- the name rewriter to apply to looked up nameslevels- the number of levels of directory hashing to applyencoded- whether identity names should be BASE32 encoded before using as filenamehashEncoding- the string format for the hashed passwords. Uses Base64 by default.hashCharset- the character set to use when converting password strings to a byte array. Uses UTF-8 by default.secretKey- the SecretKey used to encrypt and decrypt the security realm (ifnull, the security realm will be unencrypted)
-
FileSystemSecurityRealm
public FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels, boolean encoded, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset) Construct a new instance. Construction with enabled security manager requirescreateSecurityRealmElytronPermission.- Parameters:
root- the root path of the identity storenameRewriter- the name rewriter to apply to looked up nameslevels- the number of levels of directory hashing to applyencoded- whether identity names should be BASE32 encoded before using as filenamehashEncoding- the string format for the hashed passwords. Uses Base64 by default.hashCharset- the character set to use when converting password strings to a byte array. Uses UTF-8 by default.
-
FileSystemSecurityRealm
public FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels, boolean encoded) Construct a new instance. Construction with enabled security manager requirescreateSecurityRealmElytronPermission.- Parameters:
root- the root path of the identity storenameRewriter- the name rewriter to apply to looked up nameslevels- the number of levels of directory hashing to applyencoded- whether identity names should by BASE32 encoded before using as filename
-
FileSystemSecurityRealm
public FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels) Construct a new instance.- Parameters:
root- the root path of the identity storenameRewriter- the name rewriter to apply to looked up nameslevels- the number of levels of directory hashing to apply
-
FileSystemSecurityRealm
public FileSystemSecurityRealm(Path root, org.wildfly.security.auth.server.NameRewriter nameRewriter, int levels, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset) Construct a new instance.- Parameters:
root- the root path of the identity storenameRewriter- the name rewriter to apply to looked up nameslevels- the number of levels of directory hashing to applyhashEncoding- the string format for hashed passwords. Uses Base64 by default.hashCharset- the character set to use when converting password strings to a byte array. Uses UTF-8 by default and must not benull.
-
FileSystemSecurityRealm
Construct a new instance.- Parameters:
root- the root path of the identity storelevels- the number of levels of directory hashing to apply
-
FileSystemSecurityRealm
public FileSystemSecurityRealm(Path root, int levels, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset) Construct a new instance.- Parameters:
root- the root path of the identity storelevels- the number of levels of directory hashing to applyhashEncoding- the string format for hashed passwords. Uses Base64 by default.hashCharset- the character set to use when converting password strings to a byte array. Uses UTF-8 by default and must not benull.
-
FileSystemSecurityRealm
Construct a new instance with 2 levels of hashing.- Parameters:
root- the root path of the identity store
-
FileSystemSecurityRealm
public FileSystemSecurityRealm(Path root, org.wildfly.security.password.spec.Encoding hashEncoding, Charset hashCharset) Construct a new instance with 2 levels of hashing.- Parameters:
root- the root path of the identity storehashEncoding- the string format for hashed passwords. Uses Base64 by default.hashCharset- the character set to use when converting password strings to a byte array. Uses UTF-8 by default and must not benull
-
FileSystemSecurityRealm
-
-
Method Details
-
builder
Construct a new instance of the FileSystemSecurityRealmBuilder.- Returns:
- the new FileSystemSecurityRealmBuilder instance
-
hasIntegrityEnabled
public boolean hasIntegrityEnabled()Checks if the FileSystemSecurityRealm has Integrity checking enabled- Returns:
trueif Integrity checking is enabled, andfalseotherwise
-
getHashCharset
-
getRealmIdentity
- Specified by:
getRealmIdentityin interfaceorg.wildfly.security.auth.server.SecurityRealm
-
getRealmIdentityForUpdate
public org.wildfly.security.auth.server.ModifiableRealmIdentity getRealmIdentityForUpdate(Principal principal) - Specified by:
getRealmIdentityForUpdatein interfaceorg.wildfly.security.auth.server.ModifiableSecurityRealm
-
registerIdentityChangeListener
Description copied from interface:CacheableSecurityRealmRegister a listener that should be invoked by this realm in order to notify the caching layer about changes to a specific identity.- Specified by:
registerIdentityChangeListenerin interfaceCacheableSecurityRealm- Parameters:
listener- the listener
-
getRealmIdentityIterator
public org.wildfly.security.auth.server.ModifiableRealmIdentityIterator getRealmIdentityIterator() throws org.wildfly.security.auth.server.RealmUnavailableException- Specified by:
getRealmIdentityIteratorin interfaceorg.wildfly.security.auth.server.ModifiableSecurityRealm- Throws:
org.wildfly.security.auth.server.RealmUnavailableException
-
getCredentialAcquireSupport
public org.wildfly.security.auth.SupportLevel getCredentialAcquireSupport(Class<? extends org.wildfly.security.credential.Credential> credentialType, String algorithmName, AlgorithmParameterSpec parameterSpec) throws org.wildfly.security.auth.server.RealmUnavailableException - Specified by:
getCredentialAcquireSupportin interfaceorg.wildfly.security.auth.server.SecurityRealm- Throws:
org.wildfly.security.auth.server.RealmUnavailableException
-
getEvidenceVerifySupport
public org.wildfly.security.auth.SupportLevel getEvidenceVerifySupport(Class<? extends org.wildfly.security.evidence.Evidence> evidenceType, String algorithmName) throws org.wildfly.security.auth.server.RealmUnavailableException - Specified by:
getEvidenceVerifySupportin interfaceorg.wildfly.security.auth.server.SecurityRealm- Throws:
org.wildfly.security.auth.server.RealmUnavailableException
-
updateRealmKeyPair
public void updateRealmKeyPair() throws org.wildfly.security.auth.server.RealmUnavailableExceptionRe-generate the signatures for all the identities in this realm. This method is intended to be called after updating the key pair used by this realm.- Throws:
org.wildfly.security.auth.server.RealmUnavailableException- if the realm is not able to handle requests for any reason
-
verifyRealmIntegrity
public FileSystemSecurityRealm.IntegrityResult verifyRealmIntegrity() throws org.wildfly.security.auth.server.RealmUnavailableExceptionVerify the integrity of each identity file in this realm.- Returns:
trueif the integrity of all the identity files in the realm is successfully verified andfalseotherwise- Throws:
org.wildfly.security.auth.server.RealmUnavailableException
-