我正在使用spring-security-core并且我有十多个控制器,我想检查用户是否登录了所有操作,我知道 if(springSecurityService.isLoggedIn())
在所有操作中执行的一种方法,有没有其他方法可以做到,而不是在所有动作/控制器中编写相同的逻辑
问问题
110 次
2 回答
3
如果您想完全拒绝对操作的访问,有几种方法可以做到。
您可以将@grails.plugins.springsecurity.Secured
注释放在控制器类或操作方法上。您还可以通过创建请求映射来指定需要通过 URL 进行身份验证的内容。您可以创建一个 Requestmap 域对象,也可以在您Config.groovy
的grails.plugins.springsecurity.controllerAnnotations.staticRules
地图中创建一个静态请求映射。
Spring Security Core 手册中有更多详细信息。
于 2012-07-10T14:23:50.453 回答
1
如果是我,我会让ataylors 更进一步回答。照他说的做,但不要在所有控制器中复制和粘贴相同的代码,只需将它放在Controller.groovy
模板中一次,然后运行generate-all
命令。模板对于这样的事情非常强大,如果您保持模板最新,您可以轻松更改 10 个控制器,或者当您的应用程序发展时根据需要更改 100 个控制器。
如何安装模板:
http://grails.org/doc/latest/ref/Command%20Line/install-templates.html
于 2012-07-11T03:54:40.247 回答