2013-02-02 19 views
6

を返します。春のセキュリティgetPrincipal()メソッドは、私は私のコントローラで認証されたユーザーを取得したい私の春のWebアプリケーションにanonymousUser

Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); 

しかし、私は中logedているが、プリンシパルの値が「anonymousUser」である 方法。認証されたユーザーを取得できますか?春-のsecurity.xmlで 私の構成:

<http auto-config="true" request-matcher="regex"> 
    <intercept-url pattern="/welcome*" access="ROLE_USER" /> 
    <form-login login-page="/login" default-target-url="/welcome" 
     authentication-failure-url="/loginfailed" /> 
    <logout logout-success-url="/logout" /> 
</http> 
+0

? –

+0

http://localhost/test.html – Igorock

+0

SSはここでどのようにプレーするのでしょうか?あなたは '/ welcome *'を傍受するように設定しました... –

答えて

4

わけではありません私は理解しますが試す必ず "anonymousUser" を得たとき、あなたが要求したURLこの

<http auto-config="true" request-matcher="regex"> 
    <intercept-url pattern="/welcome*" access="ROLE_USER" /> 
    <intercept-url pattern="/*" access="IS_AUTHENTICATED,IS_AUTHENTICATED_ANONYMOUSLY"/> 
+0

アイデアをありがとう!それは私のために働くが、access = "IS_AUTHENTICATED、IS_AUTHENTICATED_ANONYMOUSLY"の代わりにaccess = "ROLE_USER、ROLE_ANONYMOUSLY"である。 – Igorock

+0

@Ukrainianguy、うれしいことに答えを受け入れることを検討する。 'ROLE_ANONYMOUSLY'は正しくありません。それは' ROLE_ANONYMOUS'です。 'ROLE_'または' IS_'をチェックする必要があるかどうかは、コンテキストによって異なります。技術的には両者の間にわずかな違いしかありません。 –

+0

ROLE_ANONYMOUSが正しいこと – Igorock

関連する問題