現時点では、Spring Security が指定された URL、式、および注釈をどのように評価するかを理解しようとしています。security-context.xml
これまでのところ、常に最初からエントリをチェックしているようです。それが である場合denyAll
は、リクエストの処理を停止するだけです。
いくつかの構成オプションを設定するのを忘れたのかもしれませんが、(私の目には) Spring Security の注釈 ( 、 など) を使用して適切なホワイトリストを作成することはできませ@Secured
ん@PermitAll
。
私が望むのは、基本的に、アクセスを許可@Controller
するために a 内のメソッドに注釈を付けることです。例えば:
@Controller
@RequestMapping("/test")
public MyController {
@RequestMapping("")
public void tryToGetSomething() {
// no security annotation -> denyAll
}
@RequestMapping("/public")
@PermitAll
public void tryToGetSomethingPublic() {
// this will always have access allowed
}
@RequestMapping("/admin")
@Secured({"ROLE_ADMIN"})
public void tryToGetSomethingReallyImportant() {
// this can only be accessed by admins
}
}
このアプローチの主な理由は次のとおりです。セキュリティ;-)
。コードを書いているときに、いくつかの注釈を忘れる可能性は常にあります。また、この方法を使用すると、そのような間違いが機密データのセキュリティに影響を与えることはありません.
私の質問は次のとおりです。どうすればこれを達成できますか?