0

私はSpring Security Pluginを使ってGrailsのユーザクラスに自分の "権限"を保存することはできますか?階層クラスの権限クラスをPersonクラスに格納するにはどうすればよいですか?

私は、次のSQL構造を与えてくれた:

Userテーブル:

... 
varchar(255): username 
... 
int(2) rank: (refers to Rank table) 

ランクテーブル:

int(11): id 
varchar(25): rank_name 

は、私が代わりにその構造で動作するように、私のドメインクラスを設定することができます典型的な「User、Authority、UserAuthority many to many」スキーマの?ランク3で、ユーザーからのすべての「権威」を得た

順位(ID)は、ランク4でユーザーを意味し、階層的であるなど

EDIT: 私は単にユーザードメインに置き換え、getAuthorities方法を以下に示します。

Set<Permission> getAuthorities() { 
    Authority.findAllById(this.rank) 
    // instead of: UserAuthority.findAllByUser(this)*.permission 
} 

答えて

0

投稿者の読み込み方法を確認するには、GormUserDetailsServiceを参照してください。 springsecurityコアのコンフィグレーションはauthoritiesPropertyNameで、権限を返すユーザドメインのプロパティ名を指定します。デフォルト値は 'authorities'です。これを変更してドメインモデルに基づいて権限を返すことができます。

これが要件を満たしていない場合は、カスタムユーザー詳細サービスも作成できます。

conf/spring/resources.groovy

に名前が userDetailsServiceのBeanを定義して、元のユーザー詳細サービスを上書きします。
関連する問題