|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.acegisecurity.ui.digestauth.DigestProcessingFilter
public class DigestProcessingFilter
Processes a HTTP request's Digest authorization headers, putting the result
into the SecurityContextHolder.
For a detailed background on what this filter is designed to process, refer to RFC 2617 (which superseded RFC 2069, although this filter support clients that implement either RFC 2617 or RFC 2069).
This filter can be used to provide Digest authentication services to both remoting protocol clients (such as Hessian and SOAP) as well as standard user agents (such as Internet Explorer and FireFox).
This Digest implementation has been designed to avoid needing to store
session state between invocations. All session management information is
stored in the "nonce" that is sent to the client by the DigestProcessingFilterEntryPoint.
If authentication is successful, the resulting Authentication object will be placed into
the SecurityContextHolder.
If authentication fails, an AuthenticationEntryPoint implementation is called. This must always be
DigestProcessingFilterEntryPoint, which will prompt the user to
authenticate again via Digest authentication.
Note there are limitations to Digest authentication, although it is a more comprehensive and secure solution than Basic authentication. Please see RFC 2617 section 4 for a full discussion on the advantages of Digest authentication over Basic authentication, including commentary on the limitations that it still imposes.
Do not use this class directly. Instead configure
web.xml to use the FilterToBeanProxy.
| Field Summary | |
|---|---|
protected MessageSourceAccessor |
messages
|
| Constructor Summary | |
|---|---|
DigestProcessingFilter()
|
|
| Method Summary | |
|---|---|
void |
afterPropertiesSet()
|
void |
destroy()
|
void |
doFilter(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain chain)
|
static String |
encodePasswordInA1Format(String username,
String realm,
String password)
|
static String |
generateDigest(boolean passwordAlreadyEncoded,
String username,
String realm,
String password,
String httpMethod,
String uri,
String qop,
String nonce,
String nc,
String cnonce)
Computes the response portion of a Digest authentication
header. |
DigestProcessingFilterEntryPoint |
getAuthenticationEntryPoint()
|
UserCache |
getUserCache()
|
UserDetailsService |
getUserDetailsService()
|
void |
init(javax.servlet.FilterConfig ignored)
|
void |
setAuthenticationEntryPoint(DigestProcessingFilterEntryPoint authenticationEntryPoint)
|
void |
setMessageSource(MessageSource messageSource)
|
void |
setPasswordAlreadyEncoded(boolean passwordAlreadyEncoded)
|
void |
setUserCache(UserCache userCache)
|
void |
setUserDetailsService(UserDetailsService authenticationDao)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected MessageSourceAccessor messages
| Constructor Detail |
|---|
public DigestProcessingFilter()
| Method Detail |
|---|
public void afterPropertiesSet()
throws Exception
afterPropertiesSet in interface InitializingBeanExceptionpublic void destroy()
destroy in interface javax.servlet.Filter
public void doFilter(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain chain)
throws IOException,
javax.servlet.ServletException
doFilter in interface javax.servlet.FilterIOException
javax.servlet.ServletException
public static String encodePasswordInA1Format(String username,
String realm,
String password)
public static String generateDigest(boolean passwordAlreadyEncoded,
String username,
String realm,
String password,
String httpMethod,
String uri,
String qop,
String nonce,
String nc,
String cnonce)
throws IllegalArgumentException
response portion of a Digest authentication
header. Both the server and user agent should compute the
response independently. Provided as a static method to
simplify the coding of user agents.
passwordAlreadyEncoded - DOCUMENT ME!username - DOCUMENT ME!realm - DOCUMENT ME!password - DOCUMENT ME!httpMethod - DOCUMENT ME!uri - DOCUMENT ME!qop - DOCUMENT ME!nonce - DOCUMENT ME!nc - DOCUMENT ME!cnonce - DOCUMENT ME!
IllegalArgumentException - DOCUMENT ME!public UserDetailsService getUserDetailsService()
public DigestProcessingFilterEntryPoint getAuthenticationEntryPoint()
public UserCache getUserCache()
public void init(javax.servlet.FilterConfig ignored)
throws javax.servlet.ServletException
init in interface javax.servlet.Filterjavax.servlet.ServletExceptionpublic void setUserDetailsService(UserDetailsService authenticationDao)
public void setAuthenticationEntryPoint(DigestProcessingFilterEntryPoint authenticationEntryPoint)
public void setMessageSource(MessageSource messageSource)
setMessageSource in interface MessageSourceAwarepublic void setPasswordAlreadyEncoded(boolean passwordAlreadyEncoded)
public void setUserCache(UserCache userCache)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||