たとえば、次のように事前認証なし誰かがSpringセキュリティPreAuthorizeアノテーションをexlpainできますか?
@PreAuthorize("hasRole('admin') && hasPermission('save', #user)")
void updateUser(User user) {
// some code
}
そして、いくつかの実装例。
void updateUser(User user) {
Security.hasRole(Roles.ADMIN);
Security.hasPermission(Permission.SAVE, user);
// some code
}
2番目の例はわかりやすいです。 IDE(リネームの役割、またはすべての役割の用途の検索)によってリファクタリングできます。コンパイル時のコードチェック。より速く作業してください。そして他の利点があります。
なぜ春のセキュリティ開発者はアノテーションとSpELを選択したのですか?誰かがそれを説明することはできますか?
私が見つけることができる理由の1つ - ApplicationContextへのより簡単なアクセス。しかし、私が見る限りでは、SecurityContextHolderシングルトンを通してどのようにしてもセキュリティを強化できます。