SpringBootセキュリティセット権限テスト結果
ADMIN2、ROLE_ADMIN
String[] permissions = "ADMIN2,ROLE_ADMIN".split(",");
List<GrantedAuthority> authorities = new ArrayList<>();
for (String permission : permissions) {
authorities.add(new SimpleGrantedAuthority(permission));
}
userDetails.setAuthorities(authorities);
コントローラにメソッドアノテーションパーミッションテスト結果を追加します。
@PreAuthorize("hasRole('ADMIN')") //允许
@PreAuthorize("hasRole('ROLE_ADMIN')") //允许
@PreAuthorize("hasRole('ADMIN2')") //不允许
@PreAuthorize("hasRole('ROLE_ADMIN2')") //不允许
@PreAuthorize("hasAuthority('ADMIN2')") //允许
@PreAuthorize("hasAuthority('ROLE_ADMIN2')") //不允许
@PreAuthorize("hasAuthority('ADMIN')") //不允许
@PreAuthorize("hasAuthority('ROLE_ADMIN')") //允许
テストは次のことを示しています。
プレフィックスROLE_を追加して、次の3つの方法で権限を確認します。
@PreAuthorize("hasRole('ADMIN')") //允许
@PreAuthorize("hasRole('ROLE_ADMIN')") //允许
@PreAuthorize("hasAuthority('ROLE_ADMIN')") //允许
ROLE_を増やさずに権限を確認する方法は1つだけです。
@PreAuthorize("hasAuthority('ADMIN2')") //允许