@ -16,31 +16,23 @@
@@ -16,31 +16,23 @@
package org.springframework.security.web ;
import java.io.BufferedReader ;
import java.io.IOException ;
import java.io.PrintWriter ;
import java.io.UnsupportedEncodingException ;
import java.security.Principal ;
import java.lang.reflect.InvocationHandler ;
import java.lang.reflect.Method ;
import java.lang.reflect.Proxy ;
import java.util.Collection ;
import java.util.Enumeration ;
import java.util.Locale ;
import java.util.Map ;
import javax.servlet.AsyncContext ;
import javax.servlet.DispatcherType ;
import javax.servlet.FilterChain ;
import javax.servlet.RequestDispatcher ;
import javax.servlet.ServletContext ;
import javax.servlet.ServletException ;
import javax.servlet.ServletInputStream ;
import javax.servlet.ServletOutputStream ;
import javax.servlet.ServletRequest ;
import javax.servlet.ServletResponse ;
import javax.servlet.http.Cookie ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletRequestWrapper ;
import javax.servlet.http.HttpServletResponse ;
import javax.servlet.http.HttpSession ;
import javax.servlet.http.Part ;
import org.springframework.security.web.util.UrlUtils ;
@ -154,8 +146,10 @@ public class FilterInvocation {
@@ -154,8 +146,10 @@ public class FilterInvocation {
}
}
@SuppressWarnings ( { "unchecked" } )
class DummyRequest implements HttpServletRequest {
class DummyRequest extends HttpServletRequestWrapper {
private static final HttpServletRequest UNSUPPORTED_REQUEST = ( HttpServletRequest ) Proxy . newProxyInstance (
DummyRequest . class . getClassLoader ( ) , new Class [ ] { HttpServletRequest . class } , new UnsupportedOperationExceptionInvocationHandler ( ) ) ;
private String requestURI ;
private String contextPath = "" ;
private String servletPath ;
@ -163,6 +157,10 @@ class DummyRequest implements HttpServletRequest {
@@ -163,6 +157,10 @@ class DummyRequest implements HttpServletRequest {
private String queryString ;
private String method ;
public DummyRequest ( ) {
super ( UNSUPPORTED_REQUEST ) ;
}
public void setRequestURI ( String requestURI ) {
this . requestURI = requestURI ;
}
@ -210,254 +208,6 @@ class DummyRequest implements HttpServletRequest {
@@ -210,254 +208,6 @@ class DummyRequest implements HttpServletRequest {
public void setQueryString ( String queryString ) {
this . queryString = queryString ;
}
public String getAuthType ( ) {
throw new UnsupportedOperationException ( ) ;
}
public Cookie [ ] getCookies ( ) {
throw new UnsupportedOperationException ( ) ;
}
public long getDateHeader ( String name ) {
throw new UnsupportedOperationException ( ) ;
}
public String getHeader ( String name ) {
throw new UnsupportedOperationException ( ) ;
}
@SuppressWarnings ( "rawtypes" )
public Enumeration getHeaderNames ( ) {
throw new UnsupportedOperationException ( ) ;
}
@SuppressWarnings ( "rawtypes" )
public Enumeration getHeaders ( String name ) {
throw new UnsupportedOperationException ( ) ;
}
public int getIntHeader ( String name ) {
throw new UnsupportedOperationException ( ) ;
}
public String getPathTranslated ( ) {
throw new UnsupportedOperationException ( ) ;
}
public String getRemoteUser ( ) {
throw new UnsupportedOperationException ( ) ;
}
public StringBuffer getRequestURL ( ) {
throw new UnsupportedOperationException ( ) ;
}
public String getRequestedSessionId ( ) {
throw new UnsupportedOperationException ( ) ;
}
public HttpSession getSession ( ) {
throw new UnsupportedOperationException ( ) ;
}
public HttpSession getSession ( boolean create ) {
throw new UnsupportedOperationException ( ) ;
}
public Principal getUserPrincipal ( ) {
throw new UnsupportedOperationException ( ) ;
}
public boolean isRequestedSessionIdFromCookie ( ) {
throw new UnsupportedOperationException ( ) ;
}
public boolean isRequestedSessionIdFromURL ( ) {
throw new UnsupportedOperationException ( ) ;
}
public boolean isRequestedSessionIdFromUrl ( ) {
throw new UnsupportedOperationException ( ) ;
}
public boolean isRequestedSessionIdValid ( ) {
throw new UnsupportedOperationException ( ) ;
}
public boolean isUserInRole ( String role ) {
throw new UnsupportedOperationException ( ) ;
}
public Object getAttribute ( String name ) {
throw new UnsupportedOperationException ( ) ;
}
@SuppressWarnings ( "rawtypes" )
public Enumeration getAttributeNames ( ) {
throw new UnsupportedOperationException ( ) ;
}
public String getCharacterEncoding ( ) {
throw new UnsupportedOperationException ( ) ;
}
public int getContentLength ( ) {
throw new UnsupportedOperationException ( ) ;
}
public String getContentType ( ) {
throw new UnsupportedOperationException ( ) ;
}
public ServletInputStream getInputStream ( ) throws IOException {
throw new UnsupportedOperationException ( ) ;
}
public String getLocalAddr ( ) {
throw new UnsupportedOperationException ( ) ;
}
public String getLocalName ( ) {
throw new UnsupportedOperationException ( ) ;
}
public int getLocalPort ( ) {
throw new UnsupportedOperationException ( ) ;
}
public Locale getLocale ( ) {
throw new UnsupportedOperationException ( ) ;
}
@SuppressWarnings ( "rawtypes" )
public Enumeration getLocales ( ) {
throw new UnsupportedOperationException ( ) ;
}
public String getParameter ( String name ) {
throw new UnsupportedOperationException ( ) ;
}
@SuppressWarnings ( "rawtypes" )
public Map getParameterMap ( ) {
throw new UnsupportedOperationException ( ) ;
}
@SuppressWarnings ( "rawtypes" )
public Enumeration getParameterNames ( ) {
throw new UnsupportedOperationException ( ) ;
}
public String [ ] getParameterValues ( String name ) {
throw new UnsupportedOperationException ( ) ;
}
public String getProtocol ( ) {
throw new UnsupportedOperationException ( ) ;
}
public BufferedReader getReader ( ) throws IOException {
throw new UnsupportedOperationException ( ) ;
}
public String getRealPath ( String path ) {
throw new UnsupportedOperationException ( ) ;
}
public String getRemoteAddr ( ) {
throw new UnsupportedOperationException ( ) ;
}
public String getRemoteHost ( ) {
throw new UnsupportedOperationException ( ) ;
}
public int getRemotePort ( ) {
throw new UnsupportedOperationException ( ) ;
}
public RequestDispatcher getRequestDispatcher ( String path ) {
throw new UnsupportedOperationException ( ) ;
}
public String getScheme ( ) {
throw new UnsupportedOperationException ( ) ;
}
public String getServerName ( ) {
throw new UnsupportedOperationException ( ) ;
}
public int getServerPort ( ) {
throw new UnsupportedOperationException ( ) ;
}
public boolean isSecure ( ) {
throw new UnsupportedOperationException ( ) ;
}
public void removeAttribute ( String name ) {
throw new UnsupportedOperationException ( ) ;
}
public void setAttribute ( String name , Object o ) {
throw new UnsupportedOperationException ( ) ;
}
public void setCharacterEncoding ( String env ) throws UnsupportedEncodingException {
throw new UnsupportedOperationException ( ) ;
}
public ServletContext getServletContext ( ) {
throw new UnsupportedOperationException ( ) ;
}
public AsyncContext startAsync ( ) {
throw new UnsupportedOperationException ( ) ;
}
public AsyncContext startAsync ( ServletRequest servletRequest , ServletResponse servletResponse ) {
throw new UnsupportedOperationException ( ) ;
}
public boolean isAsyncStarted ( ) {
throw new UnsupportedOperationException ( ) ;
}
public boolean isAsyncSupported ( ) {
throw new UnsupportedOperationException ( ) ;
}
public AsyncContext getAsyncContext ( ) {
throw new UnsupportedOperationException ( ) ;
}
public DispatcherType getDispatcherType ( ) {
throw new UnsupportedOperationException ( ) ;
}
public boolean authenticate ( HttpServletResponse response ) throws IOException , ServletException {
throw new UnsupportedOperationException ( ) ;
}
public void login ( String username , String password ) throws ServletException {
throw new UnsupportedOperationException ( ) ;
}
public void logout ( ) throws ServletException {
throw new UnsupportedOperationException ( ) ;
}
public Collection < Part > getParts ( ) throws IOException , IllegalStateException , ServletException {
throw new UnsupportedOperationException ( ) ;
}
public Part getPart ( String name ) throws IOException , IllegalStateException , ServletException {
throw new UnsupportedOperationException ( ) ;
}
}
class DummyResponse implements HttpServletResponse {
@ -606,3 +356,9 @@ class DummyResponse implements HttpServletResponse {
@@ -606,3 +356,9 @@ class DummyResponse implements HttpServletResponse {
throw new UnsupportedOperationException ( ) ;
}
}
final class UnsupportedOperationExceptionInvocationHandler implements InvocationHandler {
public Object invoke ( Object proxy , Method method , Object [ ] args ) throws Throwable {
throw new UnsupportedOperationException ( method + " is not supported" ) ;
}
}