1

ゲスト機能を追加したいと思います。これは、ゲストがユーザーのように機能するオブジェクトであるが、永続化されず、ROLE_GUESTの代わりに持つことを意味しますROLE_USER。ゲストIDをセッションに保存して、ゲストが何かをしたときに、ゲストを取得して、ゲストの名前でアクションを実行できるようにします。を保持したい場合、この情報をどのように追加しますかStateless Servlet

登録ユーザーの現在のログインは次のようになります。

auth = new UsernamePasswordAuthenticationToken(username, password, auths);
Authentication result = authManager.authenticate(auth);
SecurityContextHolder.getContext().setAuthentication(result);

これに似たもの、またはSecurityContextHolder.getContext()のどこかにゲスト名を直接追加する方法を探しています。Sessionこの情報を保存するために、Springオブジェクトまたは別のセッションを取得できますか?

私は使用していませんSpring MVC

4

1 に答える 1

0

偽物の代わりに、フレームワークによって提供される匿名認証メカニズムUsernamePasswordAuthenticationTokenを使用する必要があります。セキュリティ名前空間を使用して構成できます。

<security:http ....>
    ....
    <security:anonymous username="guest" granted-authority="ROLE_GUEST"/>
</security:http>

これにより、は指定さAnonymousAuthenticationFilterれたAnonymousAuthenticationToken名前と役割を持つをセキュリティコンテキストに配置します。(もちろん、これは、のような他のフィルターUsernamePasswordAuthenticationFilterがユーザーを認証できなかった場合にのみ発生します。)

于 2013-02-22T21:07:57.333 に答える