public class SAMLLogoutFilter
extends org.springframework.security.web.authentication.logout.LogoutFilter
In case global logout is in question a LogoutRequest is sent to the IDP.
Modifier and Type | Field and Description |
---|---|
protected SAMLContextProvider |
contextProvider |
static String |
FILTER_URL
URL this filter processes
|
protected org.springframework.security.web.authentication.logout.LogoutHandler[] |
globalHandlers
Handlers to be invoked during logout.
|
protected static org.slf4j.Logger |
log |
protected static String |
LOGOUT_PARAMETER
Name of parameter of HttpRequest indicating whether this call should perform only local logout.
|
protected SingleLogoutProfile |
profile |
protected SAMLLogger |
samlLogger |
Constructor and Description |
---|
SAMLLogoutFilter(org.springframework.security.web.authentication.logout.LogoutSuccessHandler logoutSuccessHandler,
org.springframework.security.web.authentication.logout.LogoutHandler[] localHandler,
org.springframework.security.web.authentication.logout.LogoutHandler[] globalHandlers)
Default constructor.
|
SAMLLogoutFilter(String successUrl,
org.springframework.security.web.authentication.logout.LogoutHandler[] localHandler,
org.springframework.security.web.authentication.logout.LogoutHandler[] globalHandlers)
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet()
Verifies that required entities were autowired or set.
|
void |
doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) |
String |
getFilterProcessesUrl()
Gets the URL used to determine if this Filter is invoked
|
protected boolean |
isGlobalLogout(HttpServletRequest request,
org.springframework.security.core.Authentication auth)
Performs global logout in case current user logged in using SAML and user hasn't selected local logout only
|
void |
processLogout(HttpServletRequest request,
HttpServletResponse response,
FilterChain chain)
In case request parameter of name "local" is set to true or there is no authenticated user
only local logout will be performed and user will be redirected to the success page.
|
protected boolean |
requiresLogout(HttpServletRequest request,
HttpServletResponse response)
The filter will be used in case the URL of the request contains the DEFAULT_FILTER_URL.
|
void |
setContextProvider(SAMLContextProvider contextProvider)
Sets entity responsible for populating local entity context data.
|
void |
setFilterProcessesUrl(String filterProcessesUrl)
Sets the URL used to determine if this Filter is invoked
|
void |
setProfile(SingleLogoutProfile profile)
Profile for consumption of processed messages, cannot be null, must be set.
|
void |
setSamlLogger(SAMLLogger samlLogger)
Logger for SAML events, cannot be null, must be set.
|
setLogoutRequestMatcher
protected static final org.slf4j.Logger log
protected SingleLogoutProfile profile
protected SAMLLogger samlLogger
protected SAMLContextProvider contextProvider
protected static final String LOGOUT_PARAMETER
protected org.springframework.security.web.authentication.logout.LogoutHandler[] globalHandlers
public static final String FILTER_URL
public SAMLLogoutFilter(String successUrl, org.springframework.security.web.authentication.logout.LogoutHandler[] localHandler, org.springframework.security.web.authentication.logout.LogoutHandler[] globalHandlers)
successUrl
- url to use after logout in case of local logoutlocalHandler
- handlers to be invoked when local logout is selectedglobalHandlers
- handlers to be invoked when global logout is selectedpublic SAMLLogoutFilter(org.springframework.security.web.authentication.logout.LogoutSuccessHandler logoutSuccessHandler, org.springframework.security.web.authentication.logout.LogoutHandler[] localHandler, org.springframework.security.web.authentication.logout.LogoutHandler[] globalHandlers)
logoutSuccessHandler
- handler to invoke upon successful logoutlocalHandler
- handlers to be invoked when local logout is selectedglobalHandlers
- handlers to be invoked when global logout is selectedpublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
doFilter
in interface Filter
doFilter
in class org.springframework.security.web.authentication.logout.LogoutFilter
IOException
ServletException
public void processLogout(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException
request
- http requestresponse
- http responsechain
- chainIOException
- errorServletException
- errorprotected boolean requiresLogout(HttpServletRequest request, HttpServletResponse response)
requiresLogout
in class org.springframework.security.web.authentication.logout.LogoutFilter
request
- request used to determine whether to enable this filterprotected boolean isGlobalLogout(HttpServletRequest request, org.springframework.security.core.Authentication auth)
request
- requestauth
- currently logged in user@Autowired public void setSamlLogger(SAMLLogger samlLogger)
samlLogger
- logger@Autowired public void setProfile(SingleLogoutProfile profile)
profile
- profile@Autowired public void setContextProvider(SAMLContextProvider contextProvider)
contextProvider
- provider implementationpublic void afterPropertiesSet() throws ServletException
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
afterPropertiesSet
in class org.springframework.web.filter.GenericFilterBean
ServletException
public void setFilterProcessesUrl(String filterProcessesUrl)
setFilterProcessesUrl
in class org.springframework.security.web.authentication.logout.LogoutFilter
filterProcessesUrl
- the URL used to determine if this Filter is invokedpublic String getFilterProcessesUrl()