6

我想让我的应用程序在 SSL 开启的情况下专门运行。我正在使用 Spring Security 核心插件。

这就是我尝试这样做的方式Config.groovy

grails.plugins.springsecurity.portMapper.httpPort = 8080
grails.plugins.springsecurity.portMapper.httpsPort = 8443
grails.plugins.springsecurity.secureChannel.definition = [ '/**' : 'REQUIRES_SECURE_CHANNEL']

每次我尝试使用 HTTP 访问 URL 时,我都希望这会导致重定向。但是,我永远不会被重定向,并且可以通过 HTTP 和 HTTPS 导航。我可以添加我正在使用开始我的应用程序grails run-app -https

我错了吗?

任何建议都是最受欢迎的。

4

3 回答 3

2

您的配置中是否声明了自定义过滤器链?

在这种情况下,您可能需要将“channelProcessingFilter”添加到您的链中

http://static.springsource.org/spring-security/site/docs/3.0.x/reference/security-filter-chain.html

于 2012-08-30T09:29:46.757 回答
1

您也可以尝试使用 forceHttps 选项

grails.plugins.springsecurity.auth.forceHttps = true
于 2012-05-26T21:11:47.523 回答
0

您没有任何通配符,因此该定义实际上与根 URL ( /) 匹配,但其下方没有任何内容 ( /foo)。你想要的是:

grails.plugins.springsecurity.secureChannel.definition = [ '/**' : 'REQUIRES_SECURE_CHANNEL']
                                                             ^^

(您可以清楚地看到文档中的通配符:-)

最后,如果您的服务器位于负载平衡器或其他隐藏协议的防火墙后面,请查看同一页面以获取有关检查标头的说明。

于 2012-05-26T06:54:21.130 回答