|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.security.authentication.jaas.AbstractJaasAuthenticationProvider
org.springframework.security.authentication.jaas.JaasAuthenticationProvider
public class JaasAuthenticationProvider
An AuthenticationProvider implementation that retrieves user details from a JAAS login configuration.
This AuthenticationProvider is capable of validating UsernamePasswordAuthenticationToken requests contain the correct username and
password.
This implementation is backed by a JAAS configuration. The
loginConfig property must be set to a given JAAS configuration file. This setter accepts a Spring Resource instance. It should point to a JAAS configuration file containing an index
matching the loginContextName property.
For example: If this JaasAuthenticationProvider were configured in a Spring WebApplicationContext the xml to set the loginConfiguration could be as follows...
<property name="loginConfig"> <value>/WEB-INF/login.conf</value> </property>
The loginContextName should coincide with a given index in the loginConfig specifed. The loginConfig file used in the JUnit tests appears as the following...
JAASTest {
org.springframework.security.authentication.jaas.TestLoginModule required;
};
Using the example login configuration above, the loginContextName property would be set as JAASTest...
<property name="loginContextName"> <value>JAASTest</value> </property>
When using JAAS login modules as the authentication source, sometimes the
LoginContext will
require CallbackHandlers. The JaasAuthenticationProvider uses an internal
CallbackHandler
to wrap the JaasAuthenticationCallbackHandlers configured in the ApplicationContext.
When the LoginContext calls the internal CallbackHandler, control is passed to each
JaasAuthenticationCallbackHandler for each Callback passed.
JaasAuthenticationCallbackHandlers are passed to the JaasAuthenticationProvider through the callbackHandlers
property.
<property name="callbackHandlers">
<list>
<bean class="org.springframework.security.authentication.jaas.TestCallbackHandler"/>
<bean class="org.springframework.security.authentication.jaas.JaasNameCallbackHandler"/>
<bean class="org.springframework.security.authentication.jaas.JaasPasswordCallbackHandler"/>
</list>
</property>
After calling LoginContext.login(), the JaasAuthenticationProvider will retrieve the returned Principals
from the Subject (LoginContext.getSubject().getPrincipals). Each returned principal is then passed to the
configured AuthorityGranters. An AuthorityGranter is a mapping between a returned Principal, and a role
name. If an AuthorityGranter wishes to grant an Authorization a role, it returns that role name from it's AuthorityGranter.grant(java.security.Principal) method. The returned role will be applied to the Authorization
object as a GrantedAuthority.
AuthorityGranters are configured in spring xml as follows...
<property name="authorityGranters">
<list>
<bean class="org.springframework.security.authentication.jaas.TestAuthorityGranter"/>
</list>
</property>
A configuration note: The JaasAuthenticationProvider uses the security properites
"e;login.config.url.X"e; to configure jaas. If you would like to customize the way Jaas gets configured,
create a subclass of this and override the configureJaas(Resource) method.
| Field Summary | |
|---|---|
protected static org.apache.commons.logging.Log |
log
|
| Constructor Summary | |
|---|---|
JaasAuthenticationProvider()
|
|
| Method Summary | |
|---|---|
void |
afterPropertiesSet()
Validates the required properties are set. |
protected void |
configureJaas(Resource loginConfig)
Hook method for configuring Jaas. |
protected LoginContext |
createLoginContext(CallbackHandler handler)
Creates the LoginContext to be used for authentication. |
Resource |
getLoginConfig()
|
protected void |
publishFailureEvent(UsernamePasswordAuthenticationToken token,
AuthenticationException ase)
Publishes the JaasAuthenticationFailedEvent. |
void |
setLoginConfig(Resource loginConfig)
Set the JAAS login configuration file. |
void |
setRefreshConfigurationOnStartup(boolean refresh)
If set, a call to Configuration#refresh() will be made by #configureJaas(Resource)
method. |
| Methods inherited from class org.springframework.security.authentication.jaas.AbstractJaasAuthenticationProvider |
|---|
authenticate, getApplicationEventPublisher, handleLogout, onApplicationEvent, publishSuccessEvent, setApplicationEventPublisher, setAuthorityGranters, setCallbackHandlers, setLoginContextName, setLoginExceptionResolver, supports |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final org.apache.commons.logging.Log log
| Constructor Detail |
|---|
public JaasAuthenticationProvider()
| Method Detail |
|---|
public void afterPropertiesSet()
throws Exception
AbstractJaasAuthenticationProviderAbstractJaasAuthenticationProvider.setCallbackHandlers(JaasAuthenticationCallbackHandler[]) has not
been called with valid handlers, initializes to use
JaasNameCallbackHandler and JaasPasswordCallbackHandler.
afterPropertiesSet in interface InitializingBeanafterPropertiesSet in class AbstractJaasAuthenticationProviderException
protected LoginContext createLoginContext(CallbackHandler handler)
throws LoginException
AbstractJaasAuthenticationProvider
createLoginContext in class AbstractJaasAuthenticationProviderhandler - The CallbackHandler that should be used for the LoginContext (never null).
LoginException
protected void configureJaas(Resource loginConfig)
throws IOException
loginConfig - URL to Jaas login configuration
IOException - if there is a problem reading the config resource.
protected void publishFailureEvent(UsernamePasswordAuthenticationToken token,
AuthenticationException ase)
JaasAuthenticationFailedEvent. Can be overridden by subclasses for different
functionality
publishFailureEvent in class AbstractJaasAuthenticationProvidertoken - The authentication token being processedase - The excetion that caused the authentication failurepublic Resource getLoginConfig()
public void setLoginConfig(Resource loginConfig)
loginConfig - public void setRefreshConfigurationOnStartup(boolean refresh)
Configuration#refresh() will be made by #configureJaas(Resource)
method. Defaults to true.
refresh - set to false to disable reloading of the configuration.
May be useful in some environments.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||