1

ユーザーが登録し、ユーザー名とパスワードを入力してログインする通常のログインフォームに春のセキュリティを使用しています。Facebookでログインし、Googleオプションでログインしています。ユーザーを認証し、最終的にメール、名、姓などのユーザー情報を取得できます。fb/googleのいずれかにログインした後、fb/googleユーザーを使用していますユーザー名としての電子メール(一意)およびログイン資格情報としてのシステム生成パスワードにより、これらの値が自動的に入力されてセキュリティ ログイン フォームが生成されます。送信ボタンをクリックすると、ログインが可能になり、セッション処理が行われます。私のウェブサイトに登録する通常のユーザーの場合と同様に、春のセキュリティで気をつけてください。

上記のすべてのステップは、最後のステップ、つまりフォームの送信を除いて自動化されているため、最後のステップも JavaScript または JSP を使用して自動化したいと考えています。JSP内でjavascriptを使用してフォームを送信しようとしましたが、送信できませんでした

    <%
    if(Success_login_with_facebook/Success_login_with_google)
    {
    email = fb_email/google_email;
    Sql query to get username and password from db using email;//unique row will be returned

    uname_db = username;
    uname_pass = password;


    out.println("<script>document.forms('login').submit();</script>");
    }

    %>

<div id="autologin" style="display:none">
    <form name="f" id='login' action="<c:url value='j_spring_security_check'/>" method="POST" >

        User ID  <input size=35 type='text' id="first" name='j_username' value='<%=uname_db %>'/>
        Password<input size=35 type='password' name='j_password' value='<%=pass_db %>'>

        <input type="hidden" name="_spring_security_remember_me" value=true>

        <input style="height:30px"  name="submit" type="submit" value="Sign In">

        </form>
</div>
4

2 に答える 2

1

動作しなかった理由は、html フォームの送信ボタンの名前が「submit」であり、javascript を実行しようとするとdocument.forms['login'].submit(); フォームは送信されません。フォーム送信ボタンの名前が「送信」以外の場合は機能します。

于 2012-05-04T04:30:17.390 に答える
1

あなたのソリューションは機能するはずですが、1 つ欠けています。JavaScript でフォームを送信する前に、フォームが存在することを確認する必要があります。あなたの例では、フォームの上で out.println を実行しています。これをフォームの下に移動すると、JavaScript が正常に動作するはずです。

于 2012-04-30T10:48:23.110 に答える