在Grails网络应用程序中似乎很难解决基本问题。似乎无论我做什么,我都无法按照我期望的方式行事。使用Spring Security Core插件为应用程序添加一些安全性,但如果用户尚未登录,我无法强制重定向。
这是我面临的众多问题之一,但一次一个是最好的前进方向。任何帮助,将不胜感激。
package timetracker2
import grails.timesecurity.*
class TimeController {
def springSecurityService
def loginverify = {
if (springSecurityService.isLoggedIn()) {
}
else {
render 'Please log in'
}
}
static scaffold = Time
....
答案 0 :(得分:2)
使用Spring Security,您通常不会在代码中检查登录状态。
有两种方法可以设置安全要求。
一种是设置URL的安全性要求。这是通过Config.groovy中的interceptUrlMap完成的。
另一种是在控制器方法上使用安全注释。 在这种情况下,要求用户登录将如下所示:
class TimeController {
@Secured("IS_AUTHENTICATED_FULLY")
def someMethodRequiringLogin() {
}
@Secured("ROLE_ADMIN")
def someMethodRequiringAdminRole() {
}
}
有关详细信息,请参阅Simplified Spring Security With Grails