gpt4 book ai didi

tomcat - Grails-cxf 中通过 SSL 的 Web 服务?

转载 作者:行者123 更新时间:2023-11-28 23:51:52 24 4
gpt4 key购买 nike

我需要通过 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 协议(protocol),但似乎不在 https:8443 上 - 至少,到 8443 的 telnet 连接失败。

如果我使用 grails run-app -https 运行应用程序,所有应用程序都可以通过 https 运行。

要将 http 服务与 https 服务分开,我可能需要这样做:“Automatic http/httpS switching with Grails”,但现在我至少希望在两个不同的端口上运行不同的服务。

  1. 要让一项服务通过 HTTPS 运行,我应该遵循哪些步骤?

  2. 看起来 SSL 还需要在 war 中发挥作用,例如这个问题:SSL, Tomcat and Grails ?

我的环境是:Grails 1.3.5,acegi-security 0.5.3(我知道它已经过时),Tomcat 6。

最佳答案

如有错误请指正

SecurityConfig.groovy 中的两个选项都有效。

在独立的 Tomcat 中,无法以编程方式启用 SSL 连接器,必须在全局服务器配置 (server.xml) 中启用它:SSL, Tomcat and Grails

对于 run-app,我添加了带有 eventConfigureTomcat 钩子(Hook)的 scripts/_Events.groovy,并在 Tomcat 插件中复制了一段 TomcatServer.groovy:

eventConfigureTomcat = { Tomcat tomcat ->
keystore = "./some-keystore"
keystoreFile = new File(keystore)
keyPassword = "123456"
System.setProperty('org.mortbay.xml.XmlParser.NotValidating', 'true')

if (!(keystoreFile.exists())) {
createSSLCertificate(keystore, keyPassword, keystoreFile)
}

def httpsPort = 8443 // TODO: Take from SecurityConfig.groovy

Connector sslConnector = loadInstance(
tomcat, 'org.apache.catalina.connector.Connector')
sslConnector.scheme = "https"
sslConnector.secure = true
sslConnector.port = httpsPort
sslConnector.setProperty("SSLEnabled", "true")
sslConnector.setAttribute("keystore", keystore)
sslConnector.setAttribute("keystorePass", keyPassword)
sslConnector.URIEncoding = 'UTF-8'
tomcat.service.addConnector sslConnector
}

我不需要做协议(protocol)切换技巧,Grails 为我正确地在 httphttps 之间重定向。

关于tomcat - Grails-cxf 中通过 SSL 的 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7586154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com