1

我正在使用spring-security-core并且我有十多个控制器,我想检查用户是否登录了所有操作,我知道 if(springSecurityService.isLoggedIn())在所有操作中执行的一种方法,有没有其他方法可以做到,而不是在所有动作/控制器中编写相同的逻辑

4

2 回答 2

3

如果您想完全拒绝对操作的访问,有几种方法可以做到。

您可以将@grails.plugins.springsecurity.Secured注释放在控制器类或操作方法上。您还可以通过创建请求映射来指定需要通过 URL 进行身份验证的内容。您可以创建一个 Requestmap 域对象,也可以在您Config.groovygrails.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 回答