【发布时间】:2011-11-27 00:29:53
【问题描述】:
我需要通过 HTTPS 提供特定的 CXF Web 服务(我还有其他几个需要通过普通 HTTP 工作的服务)。在SecurityConfig.groovy,我设置:
httpsPort = 8443
两个都试了
secureChannelDefinitionSource = '''
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/services/doodah/**=REQUIRES_SECURE_CHANNEL
/**=REQUIRES_INSECURE_CHANNEL
'''
和
channelConfig = [ secure: ['/services/productid/**'], insecure: '/' ]
该服务在 8080 处停止响应 http 协议,但似乎不在 https:8443 上 - 至少,到 8443 的 telnet 连接失败。
如果我使用grails run-app -https 运行应用程序,则所有应用程序都通过 https 运行。
要将 http 与 https 服务分开,我可能需要这样做:“Automatic http/httpS switching with Grails”,但现在我至少希望在两个不同的端口上运行不同的服务。
我应该按照哪些步骤让一项服务仅通过 HTTPS 运行?
看起来 SSL 还需要在战争中发挥作用,例如这个问题:SSL, Tomcat and Grails?
我的环境是:Grails 1.3.5、acegi-security 0.5.3(我知道它已经过时了)、Tomcat 6。
【问题讨论】:
-
嗯,也许它根本不适用于
grails run-app。在tomcat插件中的TomcatServer.groovy中可以看到HTTP 和HTTPS 启动模式是互斥的。但是,如果我将 SSL 连接器添加到server.xml,那么如果部署到成熟的 Tomcat,它的工作方式可能会有所不同。
标签: tomcat grails https cxf spring-security