如何在查看经过身份验证的内容时删除上下文路径

时间:2014-01-08 19:05:46

标签: authentication grails spring-security

我正在使用另一个root.war应用程序处理服务器上的grails应用程序。目前我们使用apache重定向来隐藏上下文路径(我们的grails应用程序的名称),因为我们已经有了root.war,我们不希望它显示在我们所有的URL上。这适用于我们的公共内容。但是,现在我们已经使用spring安全核心插件添加了一些经过身份验证的内容,它总是重定向以包含上下文路径。因此,url /authcontent/page.gsp被重定向到/appname/authcontent/page.gsp。有些人提到你可以通过在tomcat中创建一个单独的虚拟主机来删除上下文路径,但我想知道是否有办法覆盖Spring Security用于在过滤器链中进行重定向的机制。也许覆盖RequestCacheAwareFilter?但我相信只在初始身份验证后才使用过滤器。我已经阅读了春季安全文档,但它并没有像整个身份验证和授权过程那样谈论重定向请求,所以我想知道这是否在插件本身。任何想法都会有所帮助。

2 个答案:

答案 0 :(得分:0)

您可以在 Config.groovy 文件中删除应用内容:

environments {
    development {
        grails.logging.jul.usebridge = true
        grails.serverURL = "http://localhost:8080"
        grails.app.context = "/"
    }
    production {
        grails.logging.jul.usebridge = false
        grails.serverURL = "http://yourwebsite.com"
        grails.app.context = "/"
    }
}

希望有所帮助。

答案 1 :(得分:0)

有很多方法可以做到这一点。我试过的两个覆盖了requestCache bean(但是你还必须覆盖DefaultSavedRequest)并覆盖我正在使用的redirectStategy bean,因为它更简单。