openshift 上的 Wildfly 9 wss 失败
wss failed for Wildfly 9 on openshift
我一直在关注这里的 websocket 教程,一切顺利:http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html
我使用 Wildfly 将此应用程序部署到 openshift,一切都很好。 ws 正在端口 8000 上工作。
现在我正在尝试使用 wss 保护 websocket。这是我所做的:
在web.xml中,我添加了:
<security-constraint>
<display-name>Secure WebSocket Endpoint</display-name>
<web-resource-collection>
<web-resource-name>Secure WebSocket Endpoint</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
然后在我的客户端中,我将 "ws" 替换为 "wss" 并将端口从 8000 更改为 8443,因此它看起来像:
wss://fakeappname.rhcloud.com:8443/actions
将更新后的应用程序部署到 OpenShift 后,我注意到网页已重定向到 https,这很好。但是 wss 根本不起作用,没有错误消息。
我在网上搜索了2天,尝试了很多不同的方法,但是none个方法都有效。
我也试过在.openshift/config/standalone.xml
中添加一个https-listener
:
<https-listener name="default-https" socket-binding="https" security-realm="ApplicationRealm"/>
其中 "ApplicationRealm" 定义为:
<security-realm name="ApplicationRealm">
<authentication>
<local default-user="$local" allowed-users="*" skip-group-loading="true"/>
<properties path="application-users.properties" relative-to="jboss.server.config.dir"/>
</authentication>
<authorization>
<properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>
</authorization>
</security-realm>
但是也没用。我不知道为什么它在 http 中有效,但在强制执行安全性时却无效。
请帮忙!任何提示将不胜感激!
经过几天的研究,原来 url-pattern
应该是 /jsf-pages/*
,然后 wss 工作。
我一直在关注这里的 websocket 教程,一切顺利:http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html
我使用 Wildfly 将此应用程序部署到 openshift,一切都很好。 ws 正在端口 8000 上工作。
现在我正在尝试使用 wss 保护 websocket。这是我所做的:
在web.xml中,我添加了:
<security-constraint>
<display-name>Secure WebSocket Endpoint</display-name>
<web-resource-collection>
<web-resource-name>Secure WebSocket Endpoint</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
然后在我的客户端中,我将 "ws" 替换为 "wss" 并将端口从 8000 更改为 8443,因此它看起来像:
wss://fakeappname.rhcloud.com:8443/actions
将更新后的应用程序部署到 OpenShift 后,我注意到网页已重定向到 https,这很好。但是 wss 根本不起作用,没有错误消息。
我在网上搜索了2天,尝试了很多不同的方法,但是none个方法都有效。
我也试过在.openshift/config/standalone.xml
中添加一个https-listener
:
<https-listener name="default-https" socket-binding="https" security-realm="ApplicationRealm"/>
其中 "ApplicationRealm" 定义为:
<security-realm name="ApplicationRealm">
<authentication>
<local default-user="$local" allowed-users="*" skip-group-loading="true"/>
<properties path="application-users.properties" relative-to="jboss.server.config.dir"/>
</authentication>
<authorization>
<properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>
</authorization>
</security-realm>
但是也没用。我不知道为什么它在 http 中有效,但在强制执行安全性时却无效。
请帮忙!任何提示将不胜感激!
经过几天的研究,原来 url-pattern
应该是 /jsf-pages/*
,然后 wss 工作。