在Spring security总自定义过滤器,继承:AbstractSecurityInterceptor,
在doFilter方法中实现以下代码:
if(!SecurityMetadataSourceTrustListHolder.getInstance().isSecurityMetadataSource(url, req)){
filterNoSessionAdminAccess(req,response,url);
//chain.doFilter(request, response);
try{
fi.getChain().doFilter(fi.getRequest(), fi.getResponse());
}catch(Exception e){
e.printStackTrace();
}
return;
}
但是在业务处理完成后,返回页面,抛出异常:
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.getResponseStatus()Lorg/springframework/http/HttpStatus;
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:978)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
但这个方法在jar是存在的,并且不存在jar冲突的问题!
大牛们帮忙解决以下!
用maven打成war部署到tomcat下,就不会报错!但是没法调试了!有什么解决方法!
这个类是在spring-webmvc的jar中,我这边使用的版本是4.3.6,在该类中没有此方法。同样使用的springsecurity4 。不知道你那边的怎么可以找到此方法。
Spring-webmvc中的ServletInvocableHandlerMethod类最终继承了Spring-web jar中的HandlerMethod类。使用maven发布提示找不到java.lang.NoSuchMethodError: org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.getResponseStatus()Lorg/springframework/http/HttpStatus;
如果使用mave打成war,copy到tomcat下,就不会出现这个错误!难道maven的问题?