Spring Security 3.2.0.RC1 - <http>元素和不推荐使用的方法</http>

时间:2013-09-02 08:48:01

标签: java eclipse spring spring-security spring-tool-suite

升级到Spring Security 3.2.0.RC1后,我的xml配置中的<http auto-config="true">收到警告“方法'setFilterProcessesUrl'被标记为已弃用”。即使是非常简单的配置,我也会收到此警告:

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

    <http auto-config="true">
        <intercept-url pattern="/myurl*" access="ROLE_USER" />
    </http>

    <authentication-manager>
        <authentication-provider>
            <user-service>
                <user name="user1" password="12345" authorities="ROLE_USER" />
            </user-service>
        </authentication-provider>
    </authentication-manager>

</beans:beans>


根据Spring Security 3.2 API documentation 不推荐使用setFilterProcessesUrl ,而应使用 setRequiresAuthenticationRequestMatcher(RequestMatcher)。如何更改此基本XML配置,因此它不使用已弃用的方法?我正在使用带有Spring Tool Suite插件的Eclipse Kepler。

更新

如果我删除<http auto-config="true">并将<form-login />添加到http元素

<http>
    <intercept-url pattern="/myurl*" access="ROLE_USER" />
    <form-login />
</http>

我也得到“方法'setFilterProcessesUrl'被标记为已弃用”警告,如果我添加<logout />,我第二次收到相同的警告。 另一方面,如果我将<form-login /><logout />替换为<http-basic />,警告就会消失。

2 个答案:

答案 0 :(得分:2)

如果您正在使用命名空间,那么像这样的IDE错误并不重要,因为您可以保证Spring Security将支持该功能。你自己并没有真正使用这种方法。

auto-config一般来说是一个坏主意。看着那个配置的人不会轻易知道它实际上做了什么。例如,您真的想要基本身份验证吗?您最好删除auto-config并明确添加所需的功能。

答案 1 :(得分:2)

已在Spring Security 3.2.1中修复。警告是由使用不推荐使用的方法的XML命名空间引起的。 https://jira.springsource.org/browse/SEC-2455