2012-05-26 42 views
6

我想让我的应用程序专门用SSL打开。 我正在使用Spring Security核心插件。Grails - SSL和Spring安全内核

这是我试图做到这一点在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

我得到这一切都错了吗?

任何建议是最受欢迎的。

回答

0

您没有任何通配符,因此该定义字面上与根URL(/)匹配,但没有低于它(/foo)。你想要的是:

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

(你可以清楚地看到通配符​​:-)

最后,如果你的服务器是在负载平衡器或其他防火墙隐藏了协议,检查同一页有关检查标题的说明。

+0

我真的很抱歉,我编辑我的问题,但我在我的代码已经有通配符。如果有问题,我正在Fedora系统上的本地主机上进行尝试。 –

1

您也可以尝试使用forceHttps选项

grails.plugins.springsecurity.auth.forceHttps = true