0

そこで、休止状態を使用して春の認証を作成しようとしています。インターネットで入手できるこの問題に関するすべてのチュートリアルをおそらくチェックアウトしましたが、フォームの送信ボタンを押しても認証が実行されず、リダイレクトされないため、何かが欠けているようですリダイレクトされるはずだった場所...

これは私のセキュリティ設定です:

<bean id='userDetailsService' class='fi.social.web.services.UserDetailsServiceImpl'></bean>

 <security:http auto-config="true">
    <security:form-login login-page="/" default-target-url="/welcome"
        authentication-failure-url="/loginfailed" />
 </security:http>

 <bean id='daoAuthenticationProvider' class='org.springframework.security.authentication.dao.DaoAuthenticationProvider'>
    <property name='userDetailsService' ref='userDetailsService' />
 </bean>

 <bean id='authenticationManager' class='org.springframework.security.authentication.ProviderManager'>
    <property name='providers'>
        <list>
            <ref local='daoAuthenticationProvider' />
        </list>
    </property>
 </bean>

<security:authentication-manager>
    <security:authentication-provider user-service-ref='userDetailsService'>
        <security:password-encoder hash='plaintext' />
    </security:authentication-provider>
</security:authentication-manager>

そして私のJSPページ:

<form method="post" name="loginForm" action="<c:url value='j_spring_security_check' />">
    <table style="position:absolute; right:15px;">
        <tr>
            <td><input type="text" name="j_username" placeholder="<fmt:message key="user.usernameOrEmail"/>"/></td>
            <td><input type="password" name="j_password" placeholder="<fmt:message key="user.password"/>"/></td>
        </tr>
        <tr>
            <td colspan="2" style="color: white; text-align:right">
                <input type="checkbox" name="remember" /><fmt:message key="user.remember" />
                <input type="submit" name="submit" style="margin:0px 0px 0px 15px; display:inline;" value="<fmt:message key="user.logIn"/>" />
            </td>
        </tr>
    </table>
</form>

それでも、何らかの理由で、フォームを送信すると

http://127.0.0.1:8080/social/j_spring_security_check;jsessionid=C00D6F0CA27E3B359A9B04B8FADDD87F

スプリングは私のフォームがそこにあり、パラメーターを処理する必要があることを知っているはずですが...では、何が間違っているのでしょうか?

4

1 に答える 1

0

を使用してログインフォームを設定しようとしましたか<form method="post" name="loginForm" action='#{request.contextPath}/j_spring_security_check'>

また、構成に奇妙なことが1つあります(しかし、あなたが言っていることから、それは今のところ問題ではありません):

それはあなたが2つを宣言していることですauthentication managers:

<security:authentication-manager>,
<bean id='authenticationManager' class='org.springframework.security.authentication.ProviderManager'>

削除してみてください

<security:authentication-manager>
    <security:authentication-provider user-service-ref='userDetailsService'>
        <security:password-encoder hash='plaintext' />
    </security:authentication-provider>
</security:authentication-manager>
于 2013-06-10T07:37:08.267 に答える