如何确保定义了@PreAuthorize?

时间:2016-05-12 10:32:07

标签: spring-security jersey

我们正在使用Spring Security @PreAuthorize注释来检查基于Jersey的REST API的正确角色和权限。我们担心的是我们从某种方法中忘记了注释,使其不安全。

有没有办法确保所有API都有注释,即使它只是@PreAuthorize("permitAll")(即明确允许所有内容)?

我们设想如果API不使用注释,请求被阻止(以便不能使用API​​)会记录错误(以便我们快速注意到错误)。

一种方法是创建一个自定义表达式,将表示请求的请求属性添加为" secured"。然后,Web过滤器可以检查请求属性是否到位,如果不是,则记录错误。

有没有更干净的方法呢?例如,将"denyAll"设置为未注释方法的默认策略,并要求在适当时覆盖它?

1 个答案:

答案 0 :(得分:0)

我最后通过添加Jersey ResourceFilterFactory来解决这个问题,它检查每个方法或类是否都有注释:

<div><iframe src="assets/videos/example.mp4" type="video/mp4" frameBorder="0" width="1280" height="720" allowfullscreen ></iframe></div>