org.springframework.security.web.authentication
Class DelegatingAuthenticationEntryPoint

java.lang.Object
  extended by org.springframework.security.web.authentication.DelegatingAuthenticationEntryPoint
All Implemented Interfaces:
InitializingBean, AuthenticationEntryPoint

public class DelegatingAuthenticationEntryPoint
extends Object
implements AuthenticationEntryPoint, InitializingBean

An AuthenticationEntryPoint which selects a concrete EntryPoint based on a RequestMatcher evaluation.

A configuration might look like this:

 <bean id="daep" class="org.springframework.security.web.authentication.DelegatingAuthenticationEntryPoint">
     <constructor-arg>
         <map>
             <entry key="hasIpAddress('192.168.1.0/24') and hasHeader('User-Agent','Mozilla')" value-ref="firstAEP" />
             <entry key="hasHeader('User-Agent','MSIE')" value-ref="secondAEP" />
         </map>
     </constructor-arg>
     <property name="defaultEntryPoint" ref="defaultAEP"/>
 </bean>
 
This example uses the RequestMatcherEditor which creates ELRequestMatcher instances for the map keys.

Since:
3.0.2

Constructor Summary
DelegatingAuthenticationEntryPoint(LinkedHashMap<RequestMatcher,AuthenticationEntryPoint> entryPoints)
           
 
Method Summary
 void afterPropertiesSet()
           
 void commence(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, AuthenticationException authException)
          Commences an authentication scheme.
 void setDefaultEntryPoint(AuthenticationEntryPoint defaultEntryPoint)
          EntryPoint which is used when no RequestMatcher returned true
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DelegatingAuthenticationEntryPoint

public DelegatingAuthenticationEntryPoint(LinkedHashMap<RequestMatcher,AuthenticationEntryPoint> entryPoints)
Method Detail

setDefaultEntryPoint

public void setDefaultEntryPoint(AuthenticationEntryPoint defaultEntryPoint)
EntryPoint which is used when no RequestMatcher returned true


commence

public void commence(javax.servlet.http.HttpServletRequest request,
                     javax.servlet.http.HttpServletResponse response,
                     AuthenticationException authException)
              throws IOException,
                     javax.servlet.ServletException
Description copied from interface: AuthenticationEntryPoint
Commences an authentication scheme.

ExceptionTranslationFilter will populate the HttpSession attribute named AbstractAuthenticationProcessingFilter.SPRING_SECURITY_SAVED_REQUEST_KEY with the requested target URL before calling this method.

Implementations should modify the headers on the ServletResponse as necessary to commence the authentication process.

Specified by:
commence in interface AuthenticationEntryPoint
Parameters:
request - that resulted in an AuthenticationException
response - so that the user agent can begin authentication
authException - that caused the invocation
Throws:
IOException
javax.servlet.ServletException

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
Exception