如果用户未登录,则将用户重定向到登录页面

时间:2014-09-30 10:18:46

标签: java grails web spring-security

当用户未登录并且他输入正确的URL用于登录页面时,他进入登录页面,否则当用户输入其他URL时,他将被重定向到错误页面而不是重定向到登录页面。如何解决这个问题?

2 个答案:

答案 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")