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

Я только что обновил с 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>

Я смотрю Spring Документацию по безопасности 3.1), и похоже, что тег <security:authorize> должен работать. Однако, когда я смотрю каталог org.springframework.security.taglibs.authz в spring-security-taglibs-3.1.0.RC3.jar, я не вижу там AuthorizeTag.class.

Что здесь не так?

Спасибо!

Ответ 1

Я обнаружил, что Tomcat может кэшировать старый security.tld, даже библиотека безопасности spring - это все версии 3.1. Удалите рабочий каталог Tomcat и перезапустите его, теперь все будет хорошо.

Ответ 2

Я предполагаю, что у вас старый файл security.tld. Убедитесь, что вы не скопировали его в свой WEB-INF и что у вас нет старых контейнеров безопасности Spring в вашем пути к классам.

Ответ 3

он переименован в JspAuthorizeTag

(org.springframework.security.taglibs.authz.JspAuthorizeTag)

Ответ 4

Попробуйте обновить 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).; -)

Ответ 5

Чтобы решить эту проблему в 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"%>