微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Spring-security甚至在提交表单之前显示“Bad Credentials”

我有以下弹簧安全代码,但它不起作用.当我打开登录页面并输入用户名/密码admin @myproject.com / secret时,将显示以下错误消息.输入用户名/密码后,添加到地址?error = 1,即使我手动删除它并刷新页面消息也不行.控制台中没有显示任何内容.
Your login attempt was not successful due to

Bad credentials.

弹簧security.xml文件

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



    <beans:import resource='login-service.xml' />
    <http auto-config="true" access-denied-page="/notFound.jsp"
        use-expressions="true">
        <intercept-url pattern="/" access="permitAll" />
        <intercept-url pattern="/member**" access="hasRole('ROLE_MEMBER')" />
        <form-login login-page="/signin" default-target-url="/index"
            authentication-failure-url="/signin?error=1" />

        <logout logout-success-url="/login?logout" />
        <csrf />
    </http>
    <authentication-manager>
        <authentication-provider>
            <user-service> <user name="admin@myproject.com" password="secret" 
                authorities="ROLE_ADMIN"/> 
            <user name="user@yahoo.com" password="secret" authorities="ROLE_USER"/> 
                </user-service> 

        </authentication-provider>
    </authentication-manager>
</beans:beans>

该表单包含以下代码,即使在提交表单之前,SPRING_Security_LAST_EXCEPTION似乎也不为空.

<c:if test="${not empty SPRING_Security_LAST_EXCEPTION}">
            <font color="red"> Your login attempt was not successful due
                to <br />
            <br /> <c:out value="${SPRING_Security_LAST_EXCEPTION.message}" />.
            </font>
        </c:if>
            <form id="form-login" role="form" method="post"
                        action="<c:url value='/j_spring_security_check' />"
                        class="relative form form-default">
                        <input type="hidden" name="${_csrf.parameterName}"
                            value="${_csrf.token}" />

我不知道为什么,但相同的代码现在返回以下错误

Your login attempt was not successful due to

Authentication method not supported: GET.

解决方法

您需要允许每个人访问您的/ signin页面,即使他未经过身份验证.
<intercept-url pattern="/signin" access="permitAll" />

我在问题第一次改变之前写了这个答案,当时问题是(它仍然是标题):“Spring-security在提交表单之前显示’Bad Credentials’”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐