- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Spring Boot/authoritiesに応じて処理をガードする へ行く。
- 1 (2018-02-20 (火) 15:50:15)
- 2 (2018-02-20 (火) 15:52:03)
キーワード†
- Spring Boot
- Spring Security
- PreAuthorize
したいこと†
ロール(roles)に紐づける権限(authorities)に応じて、特定の処理をガードしたい。権限があるユーザーだけが処理できるように。
どうやって†
URLを拾ってガードすることもできるようだけど、権限の分だけURLの名前をつけ分けることは難しいので、サービスのメソッドにガードをかけるようにする。
- Some情報を追加するメソッドを
- ADD_SOME_DATA権限をもつユーザーだけ実行できる
ようにする。
@PreAuthorize("hasAuthority('ADD_SOME_DATA')")
@Transactional(readOnly = false)
fun add(someData: SomeData) {
/* ガードがかかる追加処理 */
}
ちなみに†
@PreAuthorizeによる権限チェックをするにはSecurityConfigで次の設定をする必要がある。
@EnableGlobalMethodSecurity(prePostEnabled = true) // <-- これ
@Configration
class SecurityConfig: WebSecurityConfigurerAdapter {
...