关于标记“access-denied-page”的弹簧安全警告cvc-complex-type.3.2.2:不允许出现属性“access-denied-page”

时间:2015-04-22 02:11:18

标签: spring security http warnings

我的想法是eclipse-luna。 系统是Windows 7旗舰版。 我使用带有副本* .jar的spring security到我的项目中,并且#34;添加到构建路径"。 请参阅有关警告的图片

    <security:http auto-config="true" use-expressions="true" access-denied-page="/user/login/init">

    <security:intercept-url pattern="/manage/**" access="hasRole('ROLE_ADMIN')" />
    <security:intercept-url pattern="/user/index**" access="hasRole('ROLE_USER')" />

    <security:form-login login-page="/user/login/init"
        authentication-failure-url="/user/login/init"
        authentication-success-handler-ref="successHandler"
        authentication-failure-handler-ref="failureHandler"
        always-use-default-target='true' />

    <security:logout delete-cookies="JSESSIONID" invalidate-session="true" success-handler-ref="urlLogoutSuccessHandler" />

    <security:remember-me key="health" user-service-ref='userDetailsServiceImpl'/>
</security:http>

警告是“cvc-complex-type.3.2.2:属性&#39; access-denied-page&#39;不允许出现在元素中  &#39;安全:HTTP&#39;”

上周对此没有任何警告,我对* .jar或我的项目没有任何改变。但现在警告?我无法理解。它可以很好地处理警告。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:6)

您可以尝试从Spring Security 3.x迁移到Spring Security 4.x。

删除了XML属性http @ access-denied-page,转而使用access-denied-handler @ error-page。这意味着如果你有这样的东西:

<http ... access-denied-page="/denied">
...
</http>

需要替换为:

<http ...>
    <access-denied-handler error-page="/denied"/>
</http>

更多详细信息,请点击here,希望它适合您。

答案 1 :(得分:2)

因为我使用spring security 3,bug access-denied-page是spring security 2。所以它会在我的想法中发出警告。我们可以使用access-denied-handler替换access-denied-page

<security:access-denied-handler error-page="/user/login/init"/>