我在Grails應用程序中使用spring security插件。爲什麼有登錄頁面獲取顯示grails spring security登錄頁面顯示
- 用戶導航到它直接
- 用戶試圖訪問一個網頁,只提供給註冊用戶
在這種情況下有兩個原因我只想顯示一條消息,如「您試圖訪問需要登錄的頁面」,但在登錄頁面的GSP代碼中,我找不到區分(1)和(2)的方式), 這可能嗎?
我在Grails應用程序中使用spring security插件。爲什麼有登錄頁面獲取顯示grails spring security登錄頁面顯示
在這種情況下有兩個原因我只想顯示一條消息,如「您試圖訪問需要登錄的頁面」,但在登錄頁面的GSP代碼中,我找不到區分(1)和(2)的方式), 這可能嗎?
您可以將各種彈簧安全配置的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'
}
}
當你重定向,春季安全存儲在會話中的SavedRequest
的SPRING_SECURITY_SAVED_REQUEST_KEY
項下,所以你可以檢查的存在於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>