次のようなことは可能ですか?
public void doStuff(@RequirePrivilege("foo") User user) {
// ...
}
次のように効果的に実行されていますか?
public void doStuff(User user) {
if(!user.hasPrivilege("foo"))
throw new UserHasInsufficientPrivileges(); // this is a RuntimeException
// ...
}
Spring にはさまざまな種類の AOP サポートがあることは知っていますが、特定のメソッドの前または後に実行されるように注釈が付けられた AOP コードを見つけることができたのは最高でした。逆を行い、変更する必要があるコードに注釈を付けたいと思います。
最終的には、メソッド内で上記のチェックを行うだけで済みますが、注釈を使用する方法では追加のドキュメントが提供されるため、ドキュメントをコードと同期させなくても、ユーザーが特定の権限を必要としていることを明確にできます。