1

私のapplication-security.xmlファイルは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?> 
<!--
  - Sample namespace-based configuration
  -
  - $Id: applicationContext-security.xml 3019 2008-05-01 17:51:48Z luke_t $
  -->
<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/security 
    http://www.springframework.org/schema/security/spring-security-3.1.xsd">

<global-method-security secured-annotations="enabled">
</global-method-security>

    <!-- Don't set any role restrictions on login.jsp -->
    <intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />

    <!-- Restrict access to ALL other pages -->
    <intercept-url pattern="/**" access="ROLE_USER" />
    <intercept-url pattern="/admin/*.html" access="ROLE_ADMIN"  />
    <intercept-url pattern="/manager/*.html" access="ROLE_MANAGER"  />
    <intercept-url pattern="/**.html" access="ROLE_USER,ROLE_ADMIN, ROLE_MANAGER"  />
    <!-- Set the login page and what to do if login fails -->
    <form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?login_error=1" default-target-url="/user/userdashboard/dashboard.html"  />
    <logout logout-success-url="/login.jsp"/>
</http>

<!--
Usernames/Passwords are
    rod/koala
    dianne/emu
    scott/wombat
    peter/opal
-->
    **<security:authentication-provider>
        <jdbc-user-service data-source-ref="dataSource" />
    </security:authentication-provider>**
</beans:beans>

すべて正常に動作しますが、「要素 "security:authentication-provider" のプレフィックス "security" がバインドされていません」という奇妙なエラーが発生します。終了タグを指定しましたが。この問題を解決する方法について手がかりを持っている人はいますか?

4

1 に答える 1

10

適切な名前空間を使用して、すべての要素に「セキュリティ」を使用します。

<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:security="http://www.springframework.org/schema/security"
  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-3.0.xsd
          http://www.springframework.org/schema/security
          http://www.springframework.org/schema/security/spring-security-3.0.3.xsd">
    ...
</beans>

次に、どこでも「security:」を使用します。たとえば、次のようになります。

<security:global-method-security secured-annotations="enabled">
</security:global-method-security>

またはそれを完全に取り除きます:

...
<authentication-provider>
        <jdbc-user-service data-source-ref="dataSource" />
    </authentication-provider>
...

デフォルトの名前空間を構成したためxmlns="http://www.springframework.org/schema/security"

于 2012-04-29T14:07:55.563 に答える