如何根据grails中的url重定向到特定视图

时间:2017-02-14 11:08:44

标签: grails

我正在使用grails 2.5.5版本,假设我输入的网址为www.localhost:8080/app-name,那么它应该打开MyHome.gsp,假设我提供其他网址:demo1.localhost.com:8080/app-name然后它应该重定向到某个登录页面,如login.jsp。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

让我为你分手:

假设我有www.localhost:8080/app-name

假设我提供其他网址:demo1.localhost.com:8080/app-name

您的应用从这里开始:

案例1:/app-name 案例2:/app-name

该网址的其余部分实际上是DNS,并将特定于绑定tomcat的特定或通配符网址配置到给定的应用程序。

因此,简而言之,您需要过滤应用parse url中的整个网址,并相应地重定向您的应用。

然后你需要用grails 2截取每个url SecurityFilters据我所知,apache-shiro的工作也可以用于spring security。

并且在其中你需要全面检查类似

的内容
URL url = new URL(request.getRequestURL().toString())
                String subdomain=url.host
                if (subdomain.contains('.')) {
                    subdomain= subdomain.split('.')[0]
                }
that then returns your `demo1` you then redirect it another url if it matches your specific rule.

但正如我所说,你在谈论肤浅的东西,因为我表达了地址是什么,或者somone如何进入应用程序与实际应用程序无关。这就是IT是大生意的原因。大企业并不是因为每个人都试图将所有内容缩小到一个盒子中,而是因为当情况喜欢这种情况时需要更大的思考,即我需要一个类似于F5的负载均衡器,它将根据给定的URL拆分流量并发送给另一个要求授权的应用容器。

在那种情况下

subdomain= subdomain.split('.')[1]然后这会留下错误的余地,因为用户可以放入demo1.somedomain.com,如果解决得好,则会被subdomain= subdomain.split('.')[0]

拆分

我会这样做

String subdomain=url.host

                    if (subdomain.contains('.')) {
                        def splitter= subdomain.split('.')
                        subdomain= splitter[0]
                        if (subdomain=='www' && splitter.size()>1) {
                              subdomain= splitter[1] 
                        }
                    }