Ответ 1
Я обнаружил, что Tomcat может кэшировать старый security.tld, даже библиотека безопасности spring - это все версии 3.1. Удалите рабочий каталог Tomcat и перезапустите его, теперь все будет хорошо.
Я только что обновил с 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>
Что здесь не так?
Спасибо!
Я обнаружил, что Tomcat может кэшировать старый security.tld, даже библиотека безопасности spring - это все версии 3.1. Удалите рабочий каталог Tomcat и перезапустите его, теперь все будет хорошо.
Я предполагаю, что у вас старый файл security.tld
. Убедитесь, что вы не скопировали его в свой WEB-INF
и что у вас нет старых контейнеров безопасности Spring в вашем пути к классам.
он переименован в JspAuthorizeTag
(org.springframework.security.taglibs.authz.JspAuthorizeTag)
Попробуйте обновить security.tld(3.0.0.RELEASE):
<tag-class>org.springframework.security.taglibs.authz.AuthorizeTag</tag-class>
к
<tag-class>org.springframework.security.taglibs.authz.JspAuthorizeTag</tag-class>
Он работает для моего проекта конфигурации с помощью FreeMarker
<#assign security=JspTaglibs["/WEB-INF/tlds/security.tld"] />
(mvn jetty: run и mvn tomcat: run).; -)
Чтобы решить эту проблему в Spring MVC,
Вам нужно добавить jar/dependency в файл pom.xml.
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${springsecurity.version}</version>
</dependency>
После добавления файла ярлыка taglib вам необходимо импортировать пакет в свой JSP файл.
<%@ page import="org.springframework.security.taglibs.authz.JspAuthorizeTag "%>
Удалите taglib Uri из вашего JSP файла <%@ taglib prefix="authz" uri="http://www.springframework.org/security/tags"%>