自定义页面登录表单以使用spring登录验证

时间:2015-10-15 16:46:00

标签: java spring-mvc login spring-security

我之前使用过spring的默认登录表单来验证用户身份。现在我正在尝试在我的主页上的div中创建一个登录表单,就像在大多数网站上一样。 action标记的值等于/login,我猜是春天登录身份验证的默认网址。但我得到404 Requested resource is not available。如何使用自定义表单实现Spring登录身份验证?以下是我的代码。

登录表单:

       <form action="${pageContext.request.contextPath}/login" method="POST">
            <div class="w100" style=""></div>
            <div class="w100 formHeading">
                <fmt:message key="login"></fmt:message>
            </div>
            <div class="w100">
                <label for="username">Username</label> 
                <input type="text"
                    id="username" name="username" /> 
                <label for="password">Password</label>
                <input type="password" id="password" name="password" />
                <div class="w100">
                    <button type="submit" class="btn">Log in</button>
                </div>
        </form>

安全配置:

<security:http auto-config="true" use-expressions="true">
    <security:intercept-url pattern="/static/**" access="permitAll" />
    <security:intercept-url pattern="/login" access="permitAll"  />
    <security:intercept-url pattern="/" access="permitAll" />
    <security:intercept-url pattern="/*" access="denyAll" />

    <security:form-login login-page="/login" default-target-url="/" />
    <security:csrf disabled="true" />
</security:http>
<security:global-method-security secured-annotations="enabled"></security:global-method-security>

1 个答案:

答案 0 :(得分:1)

以下内容适用于Spring Security的版本3.x.x (4.x.x不同,感谢@Ritesh指出):

处理登录表单数据的默认URL是/j_spring_security_check(这与“登录页面”不同)。所以:

<form action="${pageContext.request.contextPath}/j_spring_security_check" method="POST">

另请注意,默认情况下,输入字段应命名为j_usernamej_password

相关问题