2017-03-17 1 views
0

Hallo Ich lerne Spring für ein Projekt und versuche mir das sec-Tag beizubringen, um mehrere Ansichten zu erstellen, wenn sich verschiedene Benutzer anmelden. Ich laufe immer wieder auf Fehler beim Einrichten des Tags.Neu bei Spring - Verwenden des sec-Tags funktioniert nicht

Hier meine JSP ist:

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> 

<html> 
<head> 
<title>Welcome</title> 
</head> 
<body> 
    <h1>Welcome</h1> 
    <security:authorize access="hasRole('admin')"> 
    Only admins can see the <a href="second">Second link</a> 
    </security:authorize> 
</body> 
</html> 

, die den Fehler geben: Kann nicht den Tag Bibliotheksdeskriptor für "http://www.springframework.org/security/tags"

Hier finden ist mein xml:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:security="http://www.springframework.org/schema/security" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-4.0.xsd 
    http://www.springframework.org/schema/security 
      http://www.springframework.org/schema/security/spring-security-4.0.xsd 
    "> 



    <mvc:annotation-driven /> 

    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/views/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 

    <!-- Filter for role checking --> 
<bean id="filterSecurityInterceptor" class="org.springframework.security.web.access.intercept.FilterSecurityInterceptor"> 
    <property name="authenticationManager" ref="authenticationManager"/> 
    <property name="accessDecisionManager" ref="httpRequestAccessDecisionManager"/> 
    <property name="securityMetadataSource"> 
     <security:filter-security-metadata-source lowercase-comparisons="true" request-matcher="ant" use-expressions="true"> 
      <security:intercept-url pattern="/pages/Security/**" access="permitAll"/> 
      <security:intercept-url pattern="/resources/**" access="permitAll"/> 
      <security:intercept-url pattern="/pages/Settings/**" access="hasRole('SETTINGS')"/> 
      <security:intercept-url pattern="/pages/Home/*" access="hasRole('HOME')"/>    
      <security:intercept-url pattern="/pages/Admin/**" access="hasRole('ADMINISTRATOR')"/> 
      <security:intercept-url pattern="/servlet/Download" access="hasAnyRole('DOWNLOAD','PREMIUM_ACCOUNT')"/> 

      <security:intercept-url pattern="/**" access="isAuthenticated()"/> 
     </security:filter-security-metadata-source> 
    </property> 
</bean> 

<!-- webInvocationPrivilegeEvaluator necessary to use <sec:authorized url="xx"> --> 
<bean id="webInvocationPrivilegeEvaluator" class="org.springframework.security.web.access.DefaultWebInvocationPrivilegeEvaluator"> 
    <constructor-arg ref="filterSecurityInterceptor"></constructor-arg> 
</bean> 

</beans> 

I bin hin und her gegangen, habe "sec" auf "security" und ein paar andere Dinge umgeschaltet, aber ich kann es nicht zur Arbeit bringen. Vielen Dank im Voraus für jede Hilfe.

+0

Suche nach 'Kann die Tag-Bibliothek descriptor' –

Antwort

2

hinzufügen Feder-security-Taglibs-3.1.3.release.jar in Ihr Projekt Classpath.

Wenn Sie Maven verwenden, Fügen Sie diese Abhängigkeit in Ihrem pom.xml

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-taglibs</artifactId> 
    <version>3.1.3.RELEASE</version> 
</dependency> 
+0

nicht finden Sie korrigieren können, lassen Sie mich meine Antwort aktualisieren. –

Verwandte Themen