grails spring安全登录页面显示
Posted
技术标签:
【中文标题】grails spring安全登录页面显示【英文标题】:grails spring security login page display 【发布时间】:2012-02-14 23:46:47 【问题描述】:我在 Grails 应用程序中使用 spring 安全插件。登录页面显示有两个原因
-
用户直接导航到它
用户试图访问仅对登录用户可用的页面
仅在(2)的情况下,我想显示一条消息,例如“您试图访问需要登录的页面”,但在登录页面的 GSP 代码中我找不到区分的方法(1)和(2),这可能吗?
【问题讨论】:
【参考方案1】:当您被重定向时,Spring Security 会在会话中的 SPRING_SECURITY_SAVED_REQUEST_KEY
键下存储一个 SavedRequest
,因此您可以在 auth.gsp
中检查它是否存在:
<g:if test='$session.SPRING_SECURITY_SAVED_REQUEST_KEY'>
// display "you attempted to access a page that requires login"
</g:if>
<g:else>
// direct access to login
</g:else>
【讨论】:
【参考方案2】:您可以更改各种 spring 安全配置的 url 以指向控制器,然后根据会话中的信息使其分支。在 1.3.7 项目中做了类似
security
authenticationFailureUrl = '/logout/doLogout'
afterLogoutUrl = '/logout/doLogout'
然后有
class LogoutController
def doLogout =
def wasHere = session.getAttribute('some-attribute-you-set')
if (wasHere) render view: 'requirelogin'
else render view: 'normallogin'
【讨论】:
以上是关于grails spring安全登录页面显示的主要内容,如果未能解决你的问题,请参考以下文章
如何使 Grails Spring Security 2.0 中的登录/页面成为初始屏幕?
grails 3 spring security boot starter登录页面定制
Grails Spring Security - 登录后总是重定向到特定页面?