我正在尝试在 Spring 中设置安全策略,以便任何人都可以读取在 roo 中创建的任何实体,但只有管理员用户(在 中指定applicationContext-security.xml
)可以创建/更新/删除。在我看来,我应该能够通过定制来实现我的目标,applicationContext-security.xml
但我想不出办法。我想过使用拦截网址,如:
<intercept-url pattern="/anyEntity/*?form" access="hasRole('ROLE_ADMIN')" />
但此配置不包括 DELETE,因为它是 POST 中的隐藏字段(根据文档,支持 post 方法,但没有关于如何在拦截 url 标记中指定隐藏字段值的文档)
另一种方法是在实体设置方法上使用@secured。我目前依靠 roo 来生成 getter/setter,所以我想尽可能避免使用它
我还可以编写一个自定义控制器来进行我想的过滤。但在我看来,我应该能够自定义配置。我一定遗漏了一些明显的东西,因为公共只读策略应该是一种非常常见的策略。