4

私の質問はこれに似ていますが、いくつか単純化できます。基本的には、remember me cookie を使用してユーザーを認証したいのですが、サーバー側のすべてを完全にステートレスにしたい、つまりHttpSession. 私は次の設定をしています:

<security:http use-expressions="true" create-session="stateless" >
    <security:intercept-url pattern="/index.jsp" access="hasRole('ROLE_ANONYMOUS')" />
    <security:intercept-url pattern="/**" access="hasRole('ROLE_TEST')" />
    <security:form-login login-page="/index.jsp" default-target-url="/home" always-use-default-target="true" authentication-failure-url="/index.jsp?login_error=1" />
    <security:logout logout-success-url="/index.jsp"/>
    <security:remember-me key="MY_KEY" />
</security:http>

<security:authentication-manager>
    <security:authentication-provider>
        <security:user-service>
            <security:user name="testUser" password="testPassword" authorities="ROLE_TEST" />
        </security:user-service>
    </security:authentication-provider>
</security:authentication-manager>

上記のユーザー名とパスワードで問題なく認証され、ブラウザに記憶している Cookie が表示されます。その部分はうまく機能しています。ただし、このプロセス中にセッションを作成していることがわかります。create-session="stateless"私はこれを防ぐべきだと思った。ここで何か不足していますか?

4

1 に答える 1

3

これをさらに処理した後、セッションを作成しているのはSpringSecurityではないことがわかりました。index.jspは、ヒットするたびに新しいセッションを作成していました。index.jspの先頭に追加<%@ page session="false">しただけで、セッションは作成されていません。

于 2012-04-10T15:19:01.917 に答える