2

名の部分を持つカスタム ユーザー詳細オブジェクトがあります。以下のユーザー名は機能しますが、2 番目のようなものが機能するようにしたいと考えています。このカスタム プロパティにアクセスするにはどうすればよいですか?

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

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

2 に答える 2

3

上記を試してみて、うまくいかなかったと思います。

カスタム ユーザー詳細クラスをチェックして、'firstname' プロパティの getter メソッドと setter メソッドの大文字化が正しいことを確認してください。

于 2011-02-10T00:20:37.103 に答える
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;
于 2011-02-10T00:28:01.753 に答える