Package org.springframework.security.web.authentication

# Class DelegatingAuthenticationEntryPoint

java.lang.Object
org.springframework.security.web.authentication.DelegatingAuthenticationEntryPoint

All Implemented Interfaces:
  `org.springframework.beans.factory.InitializingBean`, `AuthenticationEntryPoint`

public class DelegatingAuthenticationEntryPoint extends Object implements AuthenticationEntryPoint, org.springframework.beans.factory.InitializingBean
An `AuthenticationEntryPoint` which selects a concrete `AuthenticationEntryPoint` 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 a `ELRequestMatcher` instances for the map keys.

Since:
  3.0.2

## Constructor Summary

Constructors
Constructor
Description
`DelegatingAuthenticationEntryPoint(LinkedHashMap<RequestMatcher,AuthenticationEntryPoint> entryPoints)`

## Method Summary

Modifier and Type
Method
Description
`void`
`afterPropertiesSet()`
`void`
`commence(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, org.springframework.security.core.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 Details

### DelegatingAuthenticationEntryPoint

public DelegatingAuthenticationEntryPoint(LinkedHashMap<RequestMatcher,AuthenticationEntryPoint> entryPoints)

## Method Details

### commence

public void commence(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, org.springframework.security.core.AuthenticationException authException) throws IOException, jakarta.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`
  `jakarta.servlet.ServletException`

### setDefaultEntryPoint

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

### afterPropertiesSet

public void afterPropertiesSet()

Specified by:
  `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`