如何在grails索引GSP之前调用我的登录GSP视图?

如何在grails索引GSP之前调用我的登录GSP视图?,grails,redirect,Grails,Redirect,我是grails的新手,有人能帮我解决下面提到的问题吗 我的应用程序中有2个控制器。现在我想有一个登录页面 我在第三个控制器中创建了login.gsp,即使登录操作在同一个控制器中 我在其他控制器中有index.gsp,这是我的应用程序的欢迎页面 grails默认调用index.gsp,但我需要login.gsp 我怎样才能做到这一点 正在等待答复 提前表示感谢 南迪塔您需要查找您需要查找未经请求的建议 如果您想向应用程序添加身份验证/授权,我强烈建议您使用现有的插件之一(例如,nimble、s

我是grails的新手,有人能帮我解决下面提到的问题吗

我的应用程序中有2个控制器。现在我想有一个登录页面

我在第三个控制器中创建了login.gsp,即使登录操作在同一个控制器中

我在其他控制器中有index.gsp,这是我的应用程序的欢迎页面

grails默认调用index.gsp,但我需要login.gsp

我怎样才能做到这一点

正在等待答复

提前表示感谢

南迪塔

您需要查找

您需要查找

未经请求的建议 如果您想向应用程序添加身份验证/授权,我强烈建议您使用现有的插件之一(例如,nimble、spring security),而不是编写自己的插件

回答你的问题 要更改应用程序的起始页,只需在
UrlMappings.groovy

"/"(view:"/index")
例如,要使
/login.gsp
成为起始页,请将其更改为:

"/"(view:"/login")
"/"(controller: 'login', action: 'index')
或者,要使其在应用程序启动时调用
LoginController
索引
操作,请将其更改为:

"/"(view:"/login")
"/"(controller: 'login', action: 'index')
不请自来的建议 如果您想向应用程序添加身份验证/授权,我强烈建议您使用现有的插件之一(例如,nimble、spring security),而不是编写自己的插件

回答你的问题 要更改应用程序的起始页,只需在
UrlMappings.groovy

"/"(view:"/index")
例如,要使
/login.gsp
成为起始页,请将其更改为:

"/"(view:"/login")
"/"(controller: 'login', action: 'index')
或者,要使其在应用程序启动时调用
LoginController
索引
操作,请将其更改为:

"/"(view:"/login")
"/"(controller: 'login', action: 'index')

如果您不想使用像spring security plugin这样的身份验证插件,我建议使用一个过滤器来检查用户是否登录,如果没有,则重定向到登录页面

示例代码:

class SecurityFilters {
   def filters = {
       loginCheck(controller:'*', action:'*') {
           before = {
              if(!session.user && !actionName.equals('login')) {
                  redirect(action:'login')
                  return false
               }
           }
       }
   }
}
将此筛选器添加到grails app/conf目录


关于grails过滤器的更多信息

如果您不想使用像spring security plugin这样的身份验证插件,我建议使用一个过滤器来检查用户是否登录,如果不是,则重定向到登录页面

示例代码:

class SecurityFilters {
   def filters = {
       loginCheck(controller:'*', action:'*') {
           before = {
              if(!session.user && !actionName.equals('login')) {
                  redirect(action:'login')
                  return false
               }
           }
       }
   }
}
将此筛选器添加到grails app/conf目录



关于grails filter Filters的更多信息

谢谢我尝试了它..但是你能用下面的语法告诉我我应该写什么..安装插件后我需要运行命令grails s2 quickstart org.example SecUser SecRolei已经有2个域类register and address..你能告诉我我需要做什么吗我希望你已经运行了s2 quickstart命令并创建了角色、用户和用户角色域。您现在需要做的就是为用户分配角色,然后保护控制器/操作。要保护控制器,请执行以下操作:
@Secured(['ROLE\u NAME1','ROLE\u NAME2'])类dummycontoler{…}
要保护操作
类dummycontoler{@Secured(['ROLE\u NAME1','ROLE\u NAME2'])def edit={}
有关更多详细信息,请参阅教程谢谢。你能回答我今天发布的关于Urlmapping的问题吗。谢谢,我尝试过。但是你能用下面的语法告诉我应该写什么吗。安装插件后,我需要运行命令grails s2 quickstart org.example SecUser SecRolei已经有2个域类注册了地址..你能告诉我我到底需要做什么吗?我希望你已经运行了s2 quickstart命令并创建了角色、用户和用户角色域。您现在需要做的就是为用户分配角色,然后保护控制器/操作。要保护控制器,请执行以下操作:
@Secured(['ROLE\u NAME1','ROLE\u NAME2'])类dummycontoler{…}
要保护操作
类dummycontoler{@Secured(['ROLE\u NAME1','ROLE\u NAME2'])def edit={}
有关更多详细信息,请参阅教程谢谢。你能回答我今天发布的关于Urlmapping的问题吗。谢谢。现在我按照你说的那样在Urlmapping中编辑了我的login.gsp作为我的起始页。但是我希望在我登录时显示默认控制器的索引页。我的login.gsp在其他控制器中。当我单击login时,我将转到控制器操作到索引。但是当我尝试渲染索引视图或调用默认控制器索引操作时,我遇到了错误。如何从生成的控制器调用默认控制器的索引操作,或者如何从生成的控制器渲染索引视图controller@Don快速提问,通过修改UrlMappings.groovy,我已将我的起始页更改为spring安全登录,如您上面所建议的那样。但是,当我输入凭据并按“提交”时,它会正确地进行身份验证,但会再次将我发送回登录屏幕。例如,我需要做什么才能将我发送到index.gsp?谢谢..现在我按照你说的那样在urlmapping中编辑了我的login.gsp作为我的起始页..但是我想在我登录时显示默认控制器的索引页。我的login.gsp在其他控制器中..当我单击login时,它会将我带到控制器操作index。但是当我尝试呈现索引时查看或调用默认控制器索引操作我遇到错误。如何从生成的控制器调用默认控制器的索引操作,或者如何从生成的控制器渲染索引视图controller@Don快速提问,通过修改UrlMappings.groovy,我已将我的起始页更改为spring安全登录,如您上面所建议的。但是,当我输入凭据并按“提交”时,它会正确地进行身份验证,但会再次将我发送回登录屏幕。例如,我需要做什么才能将我发送到index.gsp?谢谢。你能回答我今天发布的关于Urlmapping的问题吗?谢谢。你能回答我今天发布的关于Urlmapping的问题吗。