2012-12-02 160 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