|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.norther.tammi.core.base.Adaptee
org.norther.tammi.core.config.DefaultConfigurable
org.norther.tammi.core.realm.AbstractRealm
public abstract class AbstractRealm
An abstract implementation of Realm.
Based on RealmBase
in the Apache Jakarta Tomcat project.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.norther.tammi.core.config.DefaultConfigurable |
---|
DefaultConfigurable.Modified |
Field Summary |
---|
Fields inherited from class org.norther.tammi.core.base.Adaptee |
---|
ADAPTEE_NOTIF_DESCRIPTION, ADAPTEE_NOTIFICATIONS |
Fields inherited from interface org.norther.tammi.core.realm.Realm |
---|
ANONYMOUS_USER_PROPERTY, CACHED_PASSWORDS_PROPERTY, DEFAULT_DOMAIN_PROPERTY, DEFAULT_ROLE_PROPERTY, DIGEST_ALGORITHM_PROPERTY, MEMBER_PROPERTY, PUBLIC_NAME_PROPERTY, SECRET_KEY_ALGORITHM, SECRET_KEY_PROPERTY |
Constructor Summary | |
---|---|
AbstractRealm()
Constructs a new realm. |
|
AbstractRealm(String digest)
Constructs a new realm with a digest. |
Method Summary | |
---|---|
protected boolean |
addRoles(AuthenticatedPrincipal principal,
List<String> roles)
Adds roles for the specified authenticated principal. |
Principal |
authenticate(String domain,
Certificate[] certs)
Authenticates the principal with a certificate in the specified domain. |
Principal |
authenticate(String domain,
Principal principal,
String scheme)
Authenticates the specified principal in the specified domain of this realm. |
Principal |
authenticate(String domain,
String msisdn,
String scheme)
Authenticates the principal associated with the specified MSISDN in the specified domain using the specified scheme, if there is one. |
Principal |
authenticate(String domain,
String username,
String password,
String scheme)
Authenticates the principal associated with the specified username and password in the specified domain using the specified scheme, if there is one. |
Principal |
authenticate(String domain,
String username,
String realmname,
String resp,
String nonce,
String nc,
String cnonce,
String qop,
String md5a2,
String encoding)
Authenticates the principal associated with the specified username in the specified domain matching the digest calculated using the given parameters using the method described in RFC2617/2831. |
protected AuthenticatedPrincipal |
createPrincipal(String domain,
Locale locale,
String user,
Object uid,
Object gid,
String credentials)
Creates a user principal instance representing the authenticated user. |
protected AuthenticatedPrincipal |
createPrincipal(String domain,
Locale locale,
String user,
Object uid,
Object gid,
String credentials,
String realName)
Creates a user principal instance with the full name representing the authenticated user. |
String |
digest(String username,
String password)
Digests the password for the specified username using the defined algorithm and converts the result to a corresponding hexadecimal string. |
String |
getAnonymousUser()
Gets the username for anonymous principals. |
Challenge |
getChallenge(String domain)
Gets the challenge for the specified domain of challenge-response based authentication. |
String |
getDefaultDomain()
Gets the default domain of this realm. |
String |
getDefaultRole()
Gets the default role of authenticated principals. |
String |
getDigestAlgorithm()
Gets the digest algorithm used to store credentials. |
protected Map<String,String> |
getMemberMap()
Gets the member map. |
protected MessageDigest |
getMessageDigest()
Gets the message digest to apply to credentials, if any. |
protected abstract Principal |
getPrincipal(String domain,
String msisdn,
String scheme)
Gets the user principal representing the authenticated user identified by an MSISDN. |
protected abstract Principal |
getPrincipal(String domain,
String username,
String password,
String scheme)
Gets the user principal representing the authenticated user identified by a username and password. |
String |
getPublicName()
Gets the public name of this realm. |
String |
handshake(Challenge chal,
String msg)
Handshakes the challenge by switching messages. |
Principal |
identify(Certificate[] certs)
Identifies the principal associated with a certificate. |
Principal |
identify(String identity)
Identifies the principal associated with the specified identity. |
Principal |
identify(String username,
String password)
Identifies the principal associated with the specified username and password. |
boolean |
isAuthenticated(Principal principal)
Checks whether the specified principal is authenticated in any domain of this realm. |
boolean |
isAuthenticated(String domain,
Principal principal)
Checks whether the specified principal is authenticated in the specified domain of this realm. |
boolean |
isCachedPasswords()
Checks whether non-digested client passwords are cached. |
boolean |
isUserInRole(Principal principal,
String role)
Checks whether the specified principal is in the specified security role within the context of any domain in this realm. |
void |
release(Challenge chal)
Releases the generated challenge. |
void |
setAnonymousUser(String username)
Sets the username for anonymous principals. |
void |
setCachedPasswords(boolean flag)
Sets the option to cache non-digested client passwords of authenticated principals to be used in e.g. |
void |
setDefaultDomain(String domain)
Sets the default domain of this realm. |
void |
setDefaultRole(String role)
Sets the default role of authenticated principals. |
void |
setDigestAlgorithm(String digest)
Sets the digest algorithm used to store credentials. |
void |
setPublicName(String name)
Sets the public name of this realm. |
void |
setSecretKey(Key key)
Sets the secret key to encrypt serialized password. |
protected void |
validateConfiguration(Configuration config)
Validates the configuration. |
Methods inherited from class org.norther.tammi.core.base.Adaptee |
---|
addAdaptee, addNotificationListener, getAttributeSupport, getBroker, getCanonicalName, getDomain, getFactory, getLoader, getLog, getLog, getMBean, getMBeanServer, getNotificationInfo, getObjectName, getRegistrationTime, getSequenceNumber, hasListeners, isRegistered, postmanaged, premanaged, removeNotificationListener, removeNotificationListener, sendNotification, sendNotification, sendNotification, sendNotification, unmanaged, unregister |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.norther.tammi.core.config.Configurable |
---|
addProperty, addProperty, addPropertyFilePath, addPropertyFilePath, clearProperties, containsProperty, getConfigKey, getProperties, getProperty, getPropertyFilePath, getPropertyFilePaths, indexOfProperty, propertyMap, propertyMap, removeProperty, removeProperty, removePropertyFilePath, setConfigKey, setProperties, setProperty, setPropertyFilePath, setPropertyFilePath, setPropertyFilePaths, setPropertyFilePaths, storeProperties |
Constructor Detail |
---|
public AbstractRealm()
public AbstractRealm(String digest)
digest
- the digest algorithm.Method Detail |
---|
public String getDefaultDomain()
Realm
getDefaultDomain
in interface Realm
public void setDefaultDomain(String domain)
Realm
setDefaultDomain
in interface Realm
domain
- the default domain.public String getPublicName()
Realm
getPublicName
in interface Realm
public void setPublicName(String name)
Realm
Note that if both the digest algorithm and the public name are defined, the digested passwords must include the username and the realmname in the form: <username>:<realmname>:<password>.
setPublicName
in interface Realm
name
- the public name.public void setSecretKey(Key key)
Realm
setSecretKey
in interface Realm
key
- the secret key.public String getDigestAlgorithm()
Realm
getDigestAlgorithm
in interface Realm
public void setDigestAlgorithm(String digest)
Realm
setDigestAlgorithm
in interface Realm
digest
- the digest algorithm.public boolean isCachedPasswords()
Realm
isCachedPasswords
in interface Realm
public void setCachedPasswords(boolean flag)
Realm
setCachedPasswords
in interface Realm
flag
- the cached passwords option.public String getDefaultRole()
Realm
getDefaultRole
in interface Realm
public void setDefaultRole(String role)
Realm
setDefaultRole
in interface Realm
role
- the default role.public String getAnonymousUser()
Realm
getAnonymousUser
in interface Realm
public void setAnonymousUser(String username)
Realm
Note that the anonymous user must be known within the realm but its credentials are not necessarily verified during authentication.
setAnonymousUser
in interface Realm
username
- the default guest.public boolean isUserInRole(Principal principal, String role)
Realm
isUserInRole
in interface Realm
principal
- the principal for whom the role is to be checked.role
- the security role to be checked.
public boolean isAuthenticated(Principal principal)
Realm
isAuthenticated
in interface Realm
principal
- the principal to be checked.
public boolean isAuthenticated(String domain, Principal principal)
Realm
isAuthenticated
in interface Realm
domain
- the domain of the user.principal
- the principal to be checked.
public Principal identify(String identity)
Realm
identify
in interface Realm
identity
- the identity.
public Principal identify(String username, String password)
Realm
identify
in interface Realm
username
- the username.password
- the password.
public Principal identify(Certificate[] certs)
Realm
identify
in interface Realm
certs
- the peer certificate chain.
public Principal authenticate(String domain, Principal principal, String scheme)
Realm
authenticate
in interface Realm
domain
- the domain of the user.principal
- principal to be authenticated.scheme
- the authentication scheme to be applied.
public Principal authenticate(String domain, String msisdn, String scheme)
Realm
The username can be null or empty for an anonymous authentication.
authenticate
in interface Realm
domain
- the domain of the user.msisdn
- the MSISDN to look up.scheme
- the authentication scheme to be applied.
public Principal authenticate(String domain, String username, String password, String scheme)
Realm
The username can be null or empty for an anonymous authentication.
authenticate
in interface Realm
domain
- the domain of the user.username
- the username to look up.password
- the password to use in authentication.scheme
- the authentication scheme to be applied.
public Principal authenticate(String domain, String username, String realmname, String resp, String nonce, String nc, String cnonce, String qop, String md5a2, String encoding)
Realm
Note that either non-encrypted or MD5 digested passwords must be applied. Digested passwords must include the username and realmname in the form: <username>:<realmname>:<password>.
The username can be null or empty for an anonymous authentication.
authenticate
in interface Realm
domain
- the domain of the user.username
- the username to look up.realmname
- the realm, i.e. the identification of the server.resp
- the digest which has been submitted by the client.nonce
- a unique token which has been used for this request.nc
- a nonce count.cnonce
- a client nonce.qop
- the quality of protection ("auth", "auth-int",...)md5a2
- the second MD5 digest used to calculate the digest:
MD5(Method + ':' + uri).encoding
- the character encoding to apply.
public Principal authenticate(String domain, Certificate[] certs)
Realm
authenticate
in interface Realm
domain
- the domain of the user.certs
- the peer certificate chain.
public Challenge getChallenge(String domain)
Realm
getChallenge
in interface Realm
domain
- the domain of the user.
public String handshake(Challenge chal, String msg)
Realm
handshake
in interface Realm
chal
- the challenge.msg
- the request.
public void release(Challenge chal)
Realm
release
in interface Realm
chal
- the challenge.public String digest(String username, String password)
Realm
digest
in interface Realm
username
- the username.password
- the password or other credentials.
protected void validateConfiguration(Configuration config)
DefaultConfigurable
validateConfiguration
in class DefaultConfigurable
config
- the configuration.protected MessageDigest getMessageDigest()
protected Map<String,String> getMemberMap()
protected AuthenticatedPrincipal createPrincipal(String domain, Locale locale, String user, Object uid, Object gid, String credentials)
domain
- the domain.locale
- the locale.uid
- the user id.gid
- the group id.user
- the username.credentials
- the server credentials.
protected AuthenticatedPrincipal createPrincipal(String domain, Locale locale, String user, Object uid, Object gid, String credentials, String realName)
domain
- the domain.locale
- the locale.user
- the username.uid
- the user id.gid
- the group id.credentials
- the server credentials.realName
- the real name.
protected boolean addRoles(AuthenticatedPrincipal principal, List<String> roles)
principal
- the principal.roles
- a list of roles.
protected abstract Principal getPrincipal(String domain, String msisdn, String scheme)
domain
- the domain.msisdn
- the MSISDN.scheme
- the authentication scheme.
protected abstract Principal getPrincipal(String domain, String username, String password, String scheme)
domain
- the domain.username
- the username.password
- the user password.scheme
- the authentication scheme.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |