mirror of
				https://github.com/spring-projects/spring-security.git
				synced 2025-10-30 22:28:46 +00:00 
			
		
		
		
	SEC-2243: Remove additional Debug Filter
This commit is contained in:
		
							parent
							
								
									56ce7d284c
								
							
						
					
					
						commit
						cea0cf9260
					
				| @ -1,191 +0,0 @@ | |||||||
| /* |  | ||||||
|  * Copyright 2002-2013 the original author or authors. |  | ||||||
|  * |  | ||||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
|  * you may not use this file except in compliance with the License. |  | ||||||
|  * You may obtain a copy of the License at |  | ||||||
|  * |  | ||||||
|  *      http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
|  * |  | ||||||
|  * Unless required by applicable law or agreed to in writing, software |  | ||||||
|  * distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
|  * See the License for the specific language governing permissions and |  | ||||||
|  * limitations under the License. |  | ||||||
|  */ |  | ||||||
| package org.springframework.security.config.annotation.web.builders; |  | ||||||
| 
 |  | ||||||
| import java.io.IOException; |  | ||||||
| import java.io.PrintWriter; |  | ||||||
| import java.io.StringWriter; |  | ||||||
| import java.util.List; |  | ||||||
| 
 |  | ||||||
| import javax.servlet.Filter; |  | ||||||
| import javax.servlet.FilterChain; |  | ||||||
| import javax.servlet.FilterConfig; |  | ||||||
| import javax.servlet.ServletException; |  | ||||||
| import javax.servlet.ServletRequest; |  | ||||||
| import javax.servlet.ServletResponse; |  | ||||||
| import javax.servlet.http.HttpServletRequest; |  | ||||||
| import javax.servlet.http.HttpServletRequestWrapper; |  | ||||||
| import javax.servlet.http.HttpServletResponse; |  | ||||||
| import javax.servlet.http.HttpSession; |  | ||||||
| 
 |  | ||||||
| import org.apache.commons.logging.Log; |  | ||||||
| import org.apache.commons.logging.LogFactory; |  | ||||||
| import org.springframework.security.web.FilterChainProxy; |  | ||||||
| import org.springframework.security.web.SecurityFilterChain; |  | ||||||
| import org.springframework.security.web.util.UrlUtils; |  | ||||||
| 
 |  | ||||||
| /** |  | ||||||
|  * Spring Security debugging filter. |  | ||||||
|  * <p> |  | ||||||
|  * Logs information (such as session creation) to help the user understand how requests are being handled |  | ||||||
|  * by Spring Security and provide them with other relevant information (such as when sessions are being created). |  | ||||||
|  * |  | ||||||
|  * |  | ||||||
|  * @author Luke Taylor |  | ||||||
|  * @author Rob Winch |  | ||||||
|  * @since 3.1 |  | ||||||
|  */ |  | ||||||
| class DebugFilter implements Filter { |  | ||||||
|     private static final String ALREADY_FILTERED_ATTR_NAME = DebugFilter.class.getName().concat(".FILTERED"); |  | ||||||
| 
 |  | ||||||
|     private final FilterChainProxy fcp; |  | ||||||
|     private final Logger logger = new Logger(); |  | ||||||
| 
 |  | ||||||
|     public DebugFilter(FilterChainProxy fcp) { |  | ||||||
|         this.fcp = fcp; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public final void doFilter(ServletRequest srvltRequest, ServletResponse srvltResponse, FilterChain filterChain) |  | ||||||
|             throws ServletException, IOException { |  | ||||||
| 
 |  | ||||||
|         if (!(srvltRequest instanceof HttpServletRequest) || !(srvltResponse instanceof HttpServletResponse)) { |  | ||||||
|             throw new ServletException("DebugFilter just supports HTTP requests"); |  | ||||||
|         } |  | ||||||
|         HttpServletRequest request = (HttpServletRequest) srvltRequest; |  | ||||||
|         HttpServletResponse response = (HttpServletResponse) srvltResponse; |  | ||||||
| 
 |  | ||||||
|         List<Filter> filters = getFilters(request); |  | ||||||
|         logger.log("Request received for '" + UrlUtils.buildRequestUrl(request) + "':\n\n" + |  | ||||||
|                 request + "\n\n" + |  | ||||||
|                 "servletPath:" + request.getServletPath() + "\n" + |  | ||||||
|                 "pathInfo:" + request.getPathInfo() + "\n\n" + |  | ||||||
|                 formatFilters(filters)); |  | ||||||
| 
 |  | ||||||
|         if (request.getAttribute(ALREADY_FILTERED_ATTR_NAME) == null) { |  | ||||||
|             invokeWithWrappedRequest(request, response, filterChain); |  | ||||||
|         } else { |  | ||||||
|             fcp.doFilter(request, response, filterChain); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private void invokeWithWrappedRequest(HttpServletRequest request, |  | ||||||
|             HttpServletResponse response, FilterChain filterChain) throws IOException, ServletException { |  | ||||||
|         request.setAttribute(ALREADY_FILTERED_ATTR_NAME, Boolean.TRUE); |  | ||||||
|         request = new DebugRequestWrapper(request); |  | ||||||
|         try { |  | ||||||
|             fcp.doFilter(request, response, filterChain); |  | ||||||
|         } |  | ||||||
|         finally { |  | ||||||
|             request.removeAttribute(ALREADY_FILTERED_ATTR_NAME); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     String formatFilters(List<Filter> filters) { |  | ||||||
|         StringBuilder sb = new StringBuilder(); |  | ||||||
|         sb.append("Security filter chain: "); |  | ||||||
|         if (filters == null) { |  | ||||||
|             sb.append("no match"); |  | ||||||
|         } else if (filters.isEmpty()) { |  | ||||||
|             sb.append("[] empty (bypassed by security='none') "); |  | ||||||
|         } else { |  | ||||||
|             sb.append("[\n"); |  | ||||||
|             for (Filter f : filters) { |  | ||||||
|                 sb.append("  ").append(f.getClass().getSimpleName()).append("\n"); |  | ||||||
|             } |  | ||||||
|             sb.append("]"); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         return sb.toString(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     private List<Filter> getFilters(HttpServletRequest request)  { |  | ||||||
|         for (SecurityFilterChain chain : fcp.getFilterChains()) { |  | ||||||
|             if (chain.matches(request)) { |  | ||||||
|                 return chain.getFilters(); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         return null; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public void init(FilterConfig filterConfig) throws ServletException { |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public void destroy() { |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| class DebugRequestWrapper extends HttpServletRequestWrapper { |  | ||||||
|     private static final Logger logger = new Logger(); |  | ||||||
| 
 |  | ||||||
|     public DebugRequestWrapper(HttpServletRequest request) { |  | ||||||
|         super(request); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public HttpSession getSession() { |  | ||||||
|         boolean sessionExists = super.getSession(false) != null; |  | ||||||
|         HttpSession session = super.getSession(); |  | ||||||
| 
 |  | ||||||
|         if (!sessionExists) { |  | ||||||
|             logger.log("New HTTP session created: " + session.getId(), true); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         return session; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @Override |  | ||||||
|     public HttpSession getSession(boolean create) { |  | ||||||
|         if (!create) { |  | ||||||
|             return super.getSession(create); |  | ||||||
|         } |  | ||||||
|         return getSession(); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /** |  | ||||||
|  * Controls output for the Spring Security debug feature. |  | ||||||
|  * |  | ||||||
|  * @author Luke Taylor |  | ||||||
|  * @since 3.1 |  | ||||||
|  */ |  | ||||||
| final class Logger { |  | ||||||
|     final static Log logger = LogFactory.getLog("Spring Security Debugger"); |  | ||||||
| 
 |  | ||||||
|     void log(String message) { |  | ||||||
|         log(message, false); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     void log(String message, boolean dumpStack) { |  | ||||||
|         StringBuilder output = new StringBuilder(256); |  | ||||||
|         output.append("\n\n************************************************************\n\n"); |  | ||||||
|         output.append(message).append("\n"); |  | ||||||
| 
 |  | ||||||
|         if (dumpStack) { |  | ||||||
|             StringWriter os = new StringWriter(); |  | ||||||
|             new Exception().printStackTrace(new PrintWriter(os)); |  | ||||||
|             StringBuffer buffer = os.getBuffer(); |  | ||||||
|             // Remove the exception in case it scares people. |  | ||||||
|             int start = buffer.indexOf("java.lang.Exception"); |  | ||||||
|             buffer.replace(start, start + 19, ""); |  | ||||||
|             output.append("\nCall stack: \n").append(os.toString()); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         output.append("\n\n************************************************************\n\n"); |  | ||||||
| 
 |  | ||||||
|         logger.info(output.toString()); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @ -40,6 +40,7 @@ import org.springframework.security.web.access.DefaultWebInvocationPrivilegeEval | |||||||
| import org.springframework.security.web.access.WebInvocationPrivilegeEvaluator; | import org.springframework.security.web.access.WebInvocationPrivilegeEvaluator; | ||||||
| import org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler; | import org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler; | ||||||
| import org.springframework.security.web.access.intercept.FilterSecurityInterceptor; | import org.springframework.security.web.access.intercept.FilterSecurityInterceptor; | ||||||
|  | import org.springframework.security.web.debug.DebugFilter; | ||||||
| import org.springframework.security.web.firewall.DefaultHttpFirewall; | import org.springframework.security.web.firewall.DefaultHttpFirewall; | ||||||
| import org.springframework.security.web.firewall.HttpFirewall; | import org.springframework.security.web.firewall.HttpFirewall; | ||||||
| import org.springframework.security.web.util.RequestMatcher; | import org.springframework.security.web.util.RequestMatcher; | ||||||
|  | |||||||
| @ -15,6 +15,8 @@ | |||||||
|  */ |  */ | ||||||
| package org.springframework.security.config.debug; | package org.springframework.security.config.debug; | ||||||
| 
 | 
 | ||||||
|  | import org.apache.commons.logging.Log; | ||||||
|  | import org.apache.commons.logging.LogFactory; | ||||||
| import org.springframework.beans.BeansException; | import org.springframework.beans.BeansException; | ||||||
| import org.springframework.beans.factory.config.BeanDefinition; | import org.springframework.beans.factory.config.BeanDefinition; | ||||||
| import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; | import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; | ||||||
| @ -22,15 +24,17 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder; | |||||||
| import org.springframework.beans.factory.support.BeanDefinitionRegistry; | import org.springframework.beans.factory.support.BeanDefinitionRegistry; | ||||||
| import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; | import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; | ||||||
| import org.springframework.security.config.BeanIds; | import org.springframework.security.config.BeanIds; | ||||||
|  | import org.springframework.security.web.debug.DebugFilter; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * @author Luke Taylor |  * @author Luke Taylor | ||||||
|  * @author Rob Winch |  * @author Rob Winch | ||||||
|  */ |  */ | ||||||
| public class SecurityDebugBeanFactoryPostProcessor implements BeanDefinitionRegistryPostProcessor { | public class SecurityDebugBeanFactoryPostProcessor implements BeanDefinitionRegistryPostProcessor { | ||||||
|  |     private final Log logger = LogFactory.getLog(getClass()); | ||||||
| 
 | 
 | ||||||
|     public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { |     public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { | ||||||
|         Logger.logger.warn("\n\n" + |         logger.warn("\n\n" + | ||||||
|                 "********************************************************************\n" + |                 "********************************************************************\n" + | ||||||
|                 "**********        Security debugging is enabled.       *************\n" + |                 "**********        Security debugging is enabled.       *************\n" + | ||||||
|                 "**********    This may include sensitive information.  *************\n" + |                 "**********    This may include sensitive information.  *************\n" + | ||||||
|  | |||||||
| @ -23,9 +23,9 @@ import org.springframework.security.authentication.AuthenticationManager | |||||||
| import org.springframework.security.authentication.UsernamePasswordAuthenticationToken | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken | ||||||
| import org.springframework.security.config.annotation.BaseSpringSpec | import org.springframework.security.config.annotation.BaseSpringSpec | ||||||
| import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder | import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder | ||||||
| import org.springframework.security.config.annotation.web.builders.DebugFilter; |  | ||||||
| import org.springframework.security.config.annotation.web.builders.HttpSecurity | import org.springframework.security.config.annotation.web.builders.HttpSecurity | ||||||
| import org.springframework.security.web.authentication.AnonymousAuthenticationFilter | import org.springframework.security.web.authentication.AnonymousAuthenticationFilter | ||||||
|  | import org.springframework.security.web.debug.DebugFilter; | ||||||
| 
 | 
 | ||||||
| class EnableWebSecurityTests extends BaseSpringSpec { | class EnableWebSecurityTests extends BaseSpringSpec { | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -29,7 +29,6 @@ import org.springframework.security.access.ConfigAttribute | |||||||
| import org.springframework.security.authentication.AnonymousAuthenticationToken | import org.springframework.security.authentication.AnonymousAuthenticationToken | ||||||
| import org.springframework.security.authentication.AuthenticationManager; | import org.springframework.security.authentication.AuthenticationManager; | ||||||
| import org.springframework.security.config.annotation.BaseSpringSpec | import org.springframework.security.config.annotation.BaseSpringSpec | ||||||
| import org.springframework.security.config.annotation.web.builders.DebugFilter; |  | ||||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | ||||||
| import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; | import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; | ||||||
| import org.springframework.security.core.Authentication; | import org.springframework.security.core.Authentication; | ||||||
| @ -49,6 +48,7 @@ import org.springframework.security.web.authentication.www.BasicAuthenticationFi | |||||||
| import org.springframework.security.web.context.HttpSessionSecurityContextRepository; | import org.springframework.security.web.context.HttpSessionSecurityContextRepository; | ||||||
| import org.springframework.security.web.context.NullSecurityContextRepository; | import org.springframework.security.web.context.NullSecurityContextRepository; | ||||||
| import org.springframework.security.web.context.SecurityContextPersistenceFilter | import org.springframework.security.web.context.SecurityContextPersistenceFilter | ||||||
|  | import org.springframework.security.web.debug.DebugFilter; | ||||||
| import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter; | import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter; | ||||||
| import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter; | import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter; | ||||||
| import org.springframework.security.web.util.AntPathRequestMatcher | import org.springframework.security.web.util.AntPathRequestMatcher | ||||||
|  | |||||||
| @ -18,6 +18,7 @@ package org.springframework.security.config.debug | |||||||
| import org.springframework.security.config.BeanIds | import org.springframework.security.config.BeanIds | ||||||
| import org.springframework.security.config.http.AbstractHttpConfigTests | import org.springframework.security.config.http.AbstractHttpConfigTests | ||||||
| import org.springframework.security.web.FilterChainProxy; | import org.springframework.security.web.FilterChainProxy; | ||||||
|  | import org.springframework.security.web.debug.DebugFilter; | ||||||
| 
 | 
 | ||||||
| class SecurityDebugBeanFactoryPostProcessorTest extends AbstractHttpConfigTests { | class SecurityDebugBeanFactoryPostProcessorTest extends AbstractHttpConfigTests { | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -55,6 +55,7 @@ import org.springframework.security.web.authentication.www.BasicAuthenticationFi | |||||||
| import org.springframework.security.web.context.HttpSessionSecurityContextRepository | import org.springframework.security.web.context.HttpSessionSecurityContextRepository | ||||||
| import org.springframework.security.web.context.SecurityContextPersistenceFilter | import org.springframework.security.web.context.SecurityContextPersistenceFilter | ||||||
| import org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter; | import org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter; | ||||||
|  | import org.springframework.security.web.debug.DebugFilter; | ||||||
| import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter | import org.springframework.security.web.jaasapi.JaasApiIntegrationFilter | ||||||
| import org.springframework.security.web.savedrequest.HttpSessionRequestCache | import org.springframework.security.web.savedrequest.HttpSessionRequestCache | ||||||
| import org.springframework.security.web.savedrequest.RequestCacheAwareFilter | import org.springframework.security.web.savedrequest.RequestCacheAwareFilter | ||||||
| @ -620,7 +621,7 @@ class MiscHttpConfigTests extends AbstractHttpConfigTests { | |||||||
|         request.addParameter("j_username", "bob"); |         request.addParameter("j_username", "bob"); | ||||||
|         request.addParameter("j_password", "bobspassword"); |         request.addParameter("j_password", "bobspassword"); | ||||||
|         then: "App context creation and login request succeed" |         then: "App context creation and login request succeed" | ||||||
|         Filter debugFilter = appContext.getBean(BeanIds.SPRING_SECURITY_FILTER_CHAIN); |         DebugFilter debugFilter = appContext.getBean(BeanIds.SPRING_SECURITY_FILTER_CHAIN); | ||||||
|         debugFilter.doFilter(request, new MockHttpServletResponse(), new MockFilterChain()); |         debugFilter.doFilter(request, new MockHttpServletResponse(), new MockFilterChain()); | ||||||
|         appListener.events.size() == 2 |         appListener.events.size() == 2 | ||||||
|         appListener.authenticationEvents.size() == 2 |         appListener.authenticationEvents.size() == 2 | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.springframework.security.config.debug; | package org.springframework.security.web.debug; | ||||||
| 
 | 
 | ||||||
| import org.springframework.security.web.FilterChainProxy; | import org.springframework.security.web.FilterChainProxy; | ||||||
| import org.springframework.security.web.SecurityFilterChain; | import org.springframework.security.web.SecurityFilterChain; | ||||||
| @ -28,7 +28,7 @@ import java.util.*; | |||||||
|  * @author Rob Winch |  * @author Rob Winch | ||||||
|  * @since 3.1 |  * @since 3.1 | ||||||
|  */ |  */ | ||||||
| class DebugFilter implements Filter { | public final class DebugFilter implements Filter { | ||||||
|     private static final String ALREADY_FILTERED_ATTR_NAME = DebugFilter.class.getName().concat(".FILTERED"); |     private static final String ALREADY_FILTERED_ATTR_NAME = DebugFilter.class.getName().concat(".FILTERED"); | ||||||
| 
 | 
 | ||||||
|     private final FilterChainProxy fcp; |     private final FilterChainProxy fcp; | ||||||
| @ -48,7 +48,7 @@ class DebugFilter implements Filter { | |||||||
|         HttpServletResponse response = (HttpServletResponse) srvltResponse; |         HttpServletResponse response = (HttpServletResponse) srvltResponse; | ||||||
| 
 | 
 | ||||||
|         List<Filter> filters = getFilters(request); |         List<Filter> filters = getFilters(request); | ||||||
|         logger.log("Request received for '" + UrlUtils.buildRequestUrl(request) + "':\n\n" + |         logger.info("Request received for '" + UrlUtils.buildRequestUrl(request) + "':\n\n" + | ||||||
|                 request + "\n\n" + |                 request + "\n\n" + | ||||||
|                 "servletPath:" + request.getServletPath() + "\n" + |                 "servletPath:" + request.getServletPath() + "\n" + | ||||||
|                 "pathInfo:" + request.getPathInfo() + "\n\n" + |                 "pathInfo:" + request.getPathInfo() + "\n\n" + | ||||||
| @ -121,7 +121,7 @@ class DebugRequestWrapper extends HttpServletRequestWrapper { | |||||||
|         HttpSession session = super.getSession(); |         HttpSession session = super.getSession(); | ||||||
| 
 | 
 | ||||||
|         if (!sessionExists) { |         if (!sessionExists) { | ||||||
|             logger.log("New HTTP session created: " + session.getId(), true); |             logger.info("New HTTP session created: " + session.getId(), true); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         return session; |         return session; | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.springframework.security.config.debug; | package org.springframework.security.web.debug; | ||||||
| 
 | 
 | ||||||
| import java.io.PrintWriter; | import java.io.PrintWriter; | ||||||
| import java.io.StringWriter; | import java.io.StringWriter; | ||||||
| @ -13,13 +13,13 @@ import org.apache.commons.logging.LogFactory; | |||||||
|  * @since 3.1 |  * @since 3.1 | ||||||
|  */ |  */ | ||||||
| final class Logger { | final class Logger { | ||||||
|     final static Log logger = LogFactory.getLog("Spring Security Debugger"); |     private static final Log logger = LogFactory.getLog("Spring Security Debugger"); | ||||||
| 
 | 
 | ||||||
|     void log(String message) { |     public void info(String message) { | ||||||
|         log(message, false); |         info(message, false); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     void log(String message, boolean dumpStack) { |     public void info(String message, boolean dumpStack) { | ||||||
|         StringBuilder output = new StringBuilder(256); |         StringBuilder output = new StringBuilder(256); | ||||||
|         output.append("\n\n************************************************************\n\n"); |         output.append("\n\n************************************************************\n\n"); | ||||||
|         output.append(message).append("\n"); |         output.append(message).append("\n"); | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package org.springframework.security.config.debug; | package org.springframework.security.web.debug; | ||||||
| 
 | 
 | ||||||
| import static org.junit.Assert.assertEquals; | import static org.junit.Assert.assertEquals; | ||||||
| import static org.mockito.Matchers.anyString; | import static org.mockito.Matchers.anyString; | ||||||
| @ -22,6 +22,9 @@ import org.powermock.core.classloader.annotations.PrepareOnlyThisForTest; | |||||||
| import org.powermock.modules.junit4.PowerMockRunner; | import org.powermock.modules.junit4.PowerMockRunner; | ||||||
| import org.powermock.reflect.internal.WhiteboxImpl; | import org.powermock.reflect.internal.WhiteboxImpl; | ||||||
| import org.springframework.security.web.FilterChainProxy; | import org.springframework.security.web.FilterChainProxy; | ||||||
|  | import org.springframework.security.web.debug.DebugFilter; | ||||||
|  | import org.springframework.security.web.debug.DebugRequestWrapper; | ||||||
|  | import org.springframework.security.web.debug.Logger; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * |  * | ||||||
| @ -60,7 +63,7 @@ public class DebugFilterTest { | |||||||
|     public void doFilterProcessesRequests() throws Exception { |     public void doFilterProcessesRequests() throws Exception { | ||||||
|         filter.doFilter(request, response, filterChain); |         filter.doFilter(request, response, filterChain); | ||||||
| 
 | 
 | ||||||
|         verify(logger).log(anyString()); |         verify(logger).info(anyString()); | ||||||
|         verify(request).setAttribute(requestAttr, Boolean.TRUE); |         verify(request).setAttribute(requestAttr, Boolean.TRUE); | ||||||
|         verify(fcp).doFilter(requestCaptor.capture(), eq(response), eq(filterChain)); |         verify(fcp).doFilter(requestCaptor.capture(), eq(response), eq(filterChain)); | ||||||
|         assertEquals(DebugRequestWrapper.class,requestCaptor.getValue().getClass()); |         assertEquals(DebugRequestWrapper.class,requestCaptor.getValue().getClass()); | ||||||
| @ -75,7 +78,7 @@ public class DebugFilterTest { | |||||||
| 
 | 
 | ||||||
|         filter.doFilter(request, response, filterChain); |         filter.doFilter(request, response, filterChain); | ||||||
| 
 | 
 | ||||||
|         verify(logger).log(anyString()); |         verify(logger).info(anyString()); | ||||||
|         verify(fcp).doFilter(request, response, filterChain); |         verify(fcp).doFilter(request, response, filterChain); | ||||||
|         verify(this.request,never()).removeAttribute(requestAttr); |         verify(this.request,never()).removeAttribute(requestAttr); | ||||||
|     } |     } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user