[英]DelegatingFilterProx With javax.servlet.Filter Not Working
在我的web.xml中,創建了以下過濾器:
<filter>
<filter-name>tokenAuthenticationFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>tokenAuthenticationFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我創建了以下組件:
@Component("tokenAuthenticationFilter")
public class TokenAuthenticationFilter implements Filter
{
final static Logger logger = Logger.getLogger(TokenAuthenticationFilter.class.getCanonicalName());
@Autowired
private IAMUserDAO iamUserDAO;
@Override
public void init(FilterConfig arg0) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
//Code comes here
}
@Override
public void destroy() {
}
不幸的是,這個過濾器從未被訪問過,我也不知道為什么。 請幫忙
我最初的需求是使用DelegatingFilterProxy將過濾器添加到現有應用程序中,因為我的過濾器帶有@Autowired屬性。 我最初嘗試按照這些說明修改web.xml; 但是,這對我沒有用。
然后,我創建了此類,一切按計划進行:
public class AuthenticationBWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Filter[] getServletFilters () { DelegatingFilterProxy filterProxy = new DelegatingFilterProxy(); filterProxy.setTargetBeanName("tokenAuthenticationFilter"); return new Filter[]{filterProxy, new AppLog4jFilter()}; } @Override protected Class<?>[] getRootConfigClasses() { return new Class[] { SpringRootConfig.class }; } @Override protected Class<?>[] getServletConfigClasses() { return new Class[] { SpringWebConfig.class }; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } @Override protected void registerContextLoaderListener(ServletContext servletContext) { super.registerContextLoaderListener(servletContext); }
}
希望這將幫助一些失去靈魂的人解決同樣的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.