2011-02-10 4 views
2

私はカスタムユーザーの詳細オブジェクトをその名の一部として持っています。ユーザー名の下で動作しますが、私は2番目のようなものを動作させたいと思います。このカスタムプロパティにはどのようにアクセスできますか?ユーザープリンシパルのカスタムプロパティを取得する

<security:authentication property="principal.username" /> 

<security:authentication property="principal.firstname" /> 

答えて

3

私はあなたが上記を試したが動作しなかったと推測します。

'firstname'プロパティのゲッターとセッターメソッドの大文字小文字が正しいことを確認するには、カスタムユーザーの詳細クラスを確認してください。

+0

あなたは正しいです、 "N" wasn大文字にしました。 –

2

私のために働きます。ここに私のテストコードがあります: -

CustomUserDetailsクラス

public class CustomUserDetails implements UserDetails { 
    public String getFirstName() { 
     return "hello"; 
    } 

    ... 
} 

JSPのカスタムタグ

次のタグhelloを返します。ところで

<security:authentication property="principal.firstName" /> 

、それが動作しませんので、あなたが、匿名クラスにgetFirstName()を入れていないことを確認してください。

私はここに言うことをしようとしている、これをしない: -

... 

return new UserDetails() { 
    // adding extra method here will not work 
    public String getFirstName() { 
     return "hello"; 
    } 

    public String getUsername() { 
     return "test"; 
    } 

    ...  
}; 

が...これを行う: -

... 

// this class implements UserDetails and contains getFirstName() 
CustomUserDetails csd = new CustomUserDetails(); 
csd.set...(...) 
... 

return csd; 
関連する問題