当用户未登录并且他输入正确的URL用于登录页面时,他进入登录页面,否则当用户输入其他URL时,他将被重定向到错误页面而不是重定向到登录页面。如何解决这个问题?
答案 0 :(得分:0)
您必须在控制器中使用@Secure
注释。如果未经授权,这将重定向用户到登录页面。本准则:
@Secured(AuthenticatedVoter.IS_AUTHENTICATED_FULLY)
class CustomerController{
....
}
将重定向所有人,除非他们已登录,否则将尝试访问客户视图页面。尝试访问此页面后,他们将被重定向到登录页面。虽然它只是一个简单的身份验证,通常你需要做更多的事情,但它会做你想要的。
答案 1 :(得分:0)
对于您的第一个问题,上面的答案很好,但是如果您想限制更多 从表面上看,你也可以使用它
首先应安装Grails Spring Security插件
class UserController {
// allow to access everyone
def index() {
}
@Secured([UserRole.ROLE_USER,UserRole.ROLE_ADMIN,...])
def account() {
}
}
注意,如果您在课程顶部提供@Secured
,则会限制整个课程的访问权限
对于第二个问题,您使用UrlMapping
,例如
"404"(controller:"yourController", action:"yourErrorPageAction")