マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

Rolesに複数の権限を持たせる

Wicketの公式ページのExamplesのauthenticationにある認証ではADMINという1つの権限を与えているが、RolesにはStringの配列を受け取るコンストラクタがあるので、複数の権限を与えられる。これを知る前はADMINという名前(定数にまでなってるし)だからUSER権限のページも見れるだろうと勝手に思っていたが、そうはいかなかった。ADMIN権限しか持っていないRolesだと以下のようなページを見ることができない

@AuthorizeInstantiation(Roles.USER)
public class UserPage extends WebPage{

}


ADMINでもUSER権限のページを見るためにはUSER権限を持ってないといけないらしい。ということで以下のように両方の権限を持つRolesを作成すればADMIN権限のページもUSER権限のページも見れるようになった。

Roles roles = new Roles(new String[]{Roles.ADMIN, Roles.USER});


でも、ページ側でもいづれかの権限を持っていれば見れるように、複数の権限をアノテーションで指定できるので、複数の権限をRolesに与えるよりは、ページ側で設定した方がいい気がする。逆に全ての権限を持ってないと見れないとかできるのだろうか?

@AuthorizeInstantiation({Roles.ADMIN, Roles.USER})
public class UserPage extends WebPage{

}