8

我正在尝试使用 Spring Security 进行非常简单的基本身份验证。我已经正确配置了命名空间,并且服务器中没有异常。在我的“servlet.xml”中,我得到了 Spring Security 的下一个:

<security:http>
    <security:http-basic></security:http-basic>
    <security:intercept-url method="POST" pattern="/**" access="ROLE_USER" />
</security:http>


<security:authentication-manager alias="authenticationManager">
    <security:authentication-provider>
        <security:user-service>
            <security:user name="cucu" password="tas" authorities="ROLE_USER" />
            <security:user name="bob" password="bobspassword" authorities="ROLE_USER" />
        </security:user-service>
    </security:authentication-provider>
</security:authentication-manager>

几乎一切都很完美:不是的方法POST不提示任何登录表单,POST方法提示它。问题是,也cucu不能bob在那里登录。谁能看到我做错了什么?

提前致谢!;-)

4

2 回答 2

26

自动应答

T_T 这两天我的脑袋撞到了这个代码......

看起来这不是代码的问题。我正在使用 Weblogic,Weblogic 使用“授权”标头捕获请求,因此它不会到达我的身份验证管理器。我用 glassfish 试过,效果很好。

搜索一些信息,我在下一篇博客中找到了一个有用的条目:http: //yplakosh.blogspot.com/2009/05/how-to-fix-basic-authentication-issue.html

<security-configuration>在我的 Weblogic 服务器(部分)的 config.xml 中添加下一行:

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>

Weblogic 不会再次捕获基本身份验证凭据,因此将由您的身份验证管理器来处理它。

我希望它可以为任何人节省一些时间:-)

于 2010-04-23T08:30:45.140 回答
1

尝试:

<http auto-config="true>
   <security:intercept-url method="POST" pattern="/**" access="ROLE_USER" />
   <http-basic />
</http>
于 2010-04-22T14:35:53.760 回答