私はカスタムユーザーの詳細オブジェクトをその名の一部として持っています。ユーザー名の下で動作しますが、私は2番目のようなものを動作させたいと思います。このカスタムプロパティにはどのようにアクセスできますか?ユーザープリンシパルのカスタムプロパティを取得する
<security:authentication property="principal.username" />
<security:authentication property="principal.firstname" />
私はカスタムユーザーの詳細オブジェクトをその名の一部として持っています。ユーザー名の下で動作しますが、私は2番目のようなものを動作させたいと思います。このカスタムプロパティにはどのようにアクセスできますか?ユーザープリンシパルのカスタムプロパティを取得する
<security:authentication property="principal.username" />
<security:authentication property="principal.firstname" />
私はあなたが上記を試したが動作しなかったと推測します。
'firstname'プロパティのゲッターとセッターメソッドの大文字小文字が正しいことを確認するには、カスタムユーザーの詳細クラスを確認してください。
私のために働きます。ここに私のテストコードがあります: -
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;
あなたは正しいです、 "N" wasn大文字にしました。 –