如何自定义Grails Spring Security Core 2登录/注销控制器和视图?

时间:2013-11-15 13:36:07

标签: spring grails spring-security

我正在使用新的Grails Spring Security Core 2.0插件,我想知道如何自定义登录视图和LoginController / LogoutController?

以前版本的插件生成了这些文件,但现在看来我必须将它们从插件复制到我的项目中。这是正确的方法吗?

如果是这样,我可以将复制的控制器和视图放入另一个包中,然后放入原始包中。 IntelliJ似乎不喜欢在同一个包中使用相同的工件。

3 个答案:

答案 0 :(得分:5)

默认情况下,版本2.0只能通过POST请求进行注销。要更改此设置以允许GET请求,请将以下内容添加到Config.groovy文件中。

grails.plugin.springsecurity.logout.postOnly = false

一旦你有了这个设置,你就可以直接链接到注销控制器以便注销

<g:link controller="logout">logout</g:link>

如果您想了解有关版本2中更改内容的更多信息,请查看What's New in Version 2.0文档

答案 1 :(得分:2)

另一种选择是使用remote link,默认情况下使用“post”方法

    <g:remoteLink class="logout" controller="logout">${message(code: 'springSecurity.logout.link')}</g:remoteLink>

答案 2 :(得分:1)

我认为上述任何答案都没有真正回答这个问题。

如果您想覆盖网络应用中的控制器和视图,请将其复制到您的网络应用中。如果您愿意,您甚至可以为它们提供不同的包层次结构,因为spring-security-core插件似乎通过URL引用它们而您的将替换它们。

这是有效的,因为在主web-app中声明的控制器和视图优先于插件中的控制器和视图。

然而,如果你在另一个插件中这样做,那时事情变得有点棘手。 See this questiona and answer for a solution to that problem

相关问题