如何在 Grails/Spring Security 插件中禁用 /login/auth

Posted

技术标签:

【中文标题】如何在 Grails/Spring Security 插件中禁用 /login/auth【英文标题】:How to disable /login/auth in Grails/Spring Security plugin 【发布时间】:2012-01-28 18:22:30 【问题描述】:

我正在尝试使用 Spring Security 插件在 Grails 中设置一个系统,该插件仅允许通过 Pre-Authentication 机制进行身份验证。

我想要发生的是,如果用户在未经身份验证的情况下尝试访问任何 URL,它应该将他们带到拒绝访问页面。

我现在得到的是 Grails 正试图将它们转发到 /login/auth(然后 Firefox 说重定向永远不会完成)。但问题是,由于我只是一个 Pre-Auth 系统,所以没有登录页面。

这是我的 Config.groovy:

grails.plugins.springsecurity.interceptUrlMap =
['/auth/*'      : 'IS_AUTHENTICATED_ANONYMOUSLY',       // so they can attempt to login
 '/**'          : 'IS_AUTHENTICATED_FULLY'
]

grails.plugins.springsecurity.providerNames =
['customerPreauthAuthProvider']

grails.plugins.springsecurity.filterChain.chainMap =
['/auth/customer' : 'customerSiteminderFilter',             // Customer login
 '/**'          : 'JOINED_FILTERS'  // Go thru regular filter chain for all others
]

关于如何让它停止这样做的任何想法?我也从 LoginController.groovy 中删除了 index 和 auth 方法,因为它们不应该被需要。

【问题讨论】:

您的标题与标签完全匹配。你能把它改成描述问题吗?而不仅仅是列出技术? 标题已更改。抱歉…… 【参考方案1】:

由于您在技术上没有登录页面,那么您只需更改以下配置选项:

auth.loginFormUrl = '/login/auth'

指向您的拒绝访问页面。

【讨论】:

以上是关于如何在 Grails/Spring Security 插件中禁用 /login/auth的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Grails/Spring Security 插件中禁用 /login/auth

Grails + spring-security-core:用户登录后如何分配角色?

如何使用 Grails Spring Security Plugin (Requestmap)

Grails spring-security-oauth-google:如何设置

Grails Spring-Security - 如何比较密码-

Grails、Spring Security 和 Angular JS - 如何保护 URL?