2012-12-02 193 views
0

似乎在Grails網絡應用程序的基本東西中掙扎。似乎不管我做什麼,我都無法按照我的期望行事。使用Spring Security Core插件在應用程序中添加一些安全性,但如果用戶尚未登錄,則無法強制重定向。grails登錄驗證

這是我面臨的許多問題之一,但每次都是最好的方法之一前鋒。任何幫助,將不勝感激。

package timetracker2 

import grails.timesecurity.* 

class TimeController { 

    def springSecurityService 

    def loginverify = { 
    if (springSecurityService.isLoggedIn()) { 
    } 
    else { 
     render 'Please log in' 
    } 
    } 

    static scaffold = Time 
    .... 

回答

2

使用Spring Security,您通常不會檢查代碼中的登錄狀態。

有兩種方法來設置安全要求。

一個是設置URL的安全要求。這是通過Config.groovy中的interceptUrlMap完成的。另一個是在控制器方法上使用Secured註釋。 在這種情況下,需要用戶先登錄會是什麼樣子:

class TimeController { 

    @Secured("IS_AUTHENTICATED_FULLY") 
    def someMethodRequiringLogin() { 
    } 

    @Secured("ROLE_ADMIN") 
    def someMethodRequiringAdminRole() { 
    } 
} 

欲瞭解更多信息,請參閱Simplified Spring Security With Grails

+0

酷,會做一些挖掘。感謝您的幫助。 – user1854751

+0

問題我現在不幸的是,控制器類主要是使用腳手架,它真的不喜歡被安全的方法。 「靜態不允許在這裏」。我曾嘗試在配置中使用攔截映射,但它完全被應用程序忽略。 – user1854751

+0

請告訴我們的註釋和編譯器錯誤或運行時錯誤的全文你得到 – GreyBeardedGeek