package com.robin.erp.fwk.security; |
import java.io.IOException; |
|
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 org.springframework.security.access.SecurityMetadataSource; |
import org.springframework.security.access.intercept.AbstractSecurityInterceptor; |
import org.springframework.security.access.intercept.InterceptorStatusToken; |
import org.springframework.security.web.FilterInvocation; |
import org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource; |
|
public class MyFilterSecurityInterceptor extends AbstractSecurityInterceptor |
implements Filter { |
|
private FilterInvocationSecurityMetadataSource securityMetadataSource; |
|
// ~ Methods |
// ======================================================================================================== |
|
/** *//** |
* Method that is actually called by the filter chain. Simply delegates to |
* the {@link #invoke(FilterInvocation)} method. |
* |
* @param request |
* the servlet request |
* @param response |
* the servlet response |
* @param chain |
* the filter chain |
* |
* @throws IOException |
* if the filter chain fails |
* @throws ServletException |
* if the filter chain fails |
*/ |
public void doFilter(ServletRequest request, ServletResponse response, |
FilterChain chain) throws IOException, ServletException { |
FilterInvocation fi = new FilterInvocation(request, response, chain); |
invoke(fi); |
} |
|
public FilterInvocationSecurityMetadataSource getSecurityMetadataSource() { |
return this.securityMetadataSource; |
} |
|
public Class<? extends Object> getSecureObjectClass() { |
return FilterInvocation.class; |
} |
|
public void invoke(FilterInvocation fi) throws IOException, |
ServletException { |
InterceptorStatusToken token = super.beforeInvocation(fi); |
try { |
fi.getChain().doFilter(fi.getRequest(), fi.getResponse()); |
} finally { |
super.afterInvocation(token, null); |
} |
} |
|
public SecurityMetadataSource obtainSecurityMetadataSource() { |
return this.securityMetadataSource; |
} |
|
public void setSecurityMetadataSource( |
FilterInvocationSecurityMetadataSource newSource) { |
this.securityMetadataSource = newSource; |
} |
|
@Override |
public void destroy() { |
} |
|
@Override |
public void init(FilterConfig arg0) throws ServletException { |
} |
|
} |