Spring-Security 3.1 java.lang.ClassNotFoundException:org.springframework.security.taglibs.authz.AuthorizeTag

rap*_*apt 10 spring jsp-tags spring-security

我刚刚从Spring Security 3.0.5升级到3.1.0.RC3

现在,以下JSP代码给了我 java.lang.ClassNotFoundException: org.springframework.security.taglibs.authz.AuthorizeTag

<security:authorize access="not hasRole('ROLE_ANONYMOUS')">
Welcome <%= request.getUserPrincipal().getName() %>
</security:authorize>
Run Code Online (Sandbox Code Playgroud)

我看一下Spring Security Reference Documentation 3.1,看起来<security:authorize>标签应该可行.但是,当我在目录org.springframework.security.taglibs.authz中查看时,我看spring-security-taglibs-3.1.0.RC3.jar不到任何内容AuthorizeTag.class.

这有什么不对?

谢谢!

小智 29

我发现Tomcat可能会缓存旧的security.tld,即使spring安全库都是3.1版本.删除Tomcat工作目录并重新启动它现在可以正常工作.

  • 是的,同样的,为我工作:)(使用eclipse:右键单击Tomcat服务器/ Clean Tomcat工作目录) (3认同)

axt*_*avt 1

我猜你security.tld在某处有一个旧文件。确保您没有将其复制到您的类路径中WEB-INF,并且您的类路径中没有任何旧的 Spring Security jar。