我在Windows 64位中使用Jboss 5.1。我还在服务器中部署了一个应用程序。 可以使用端口443通过https访问该应用程序。我没有使用任何前端Web服务器。
我希望将网址 http://example.com/context_root 重定向到 https://example.com/contextroot 。这意味着重定向是从默认的http端口80到默认的https端口443。
当我使用应用程序的上下文根点击URL时,我收到以下错误: 页面无法显示。
我已经在server.xml文件中进行了更改,以便重定向端口:
<!-- A HTTP/1.1 Connector on port 8080 -->
<Connector protocol="HTTP/1.1" port="80" address="${jboss.bind.address}"
connectionTimeout="20000" redirectPort="443" />
有人可以建议我找到最佳解决方案吗?
答案 0 :(得分:0)
要重定向到https,您需要在应用程序的web.xml
中添加以下行:
<security-constraint>
<web-resource-collection>
<web-resource-name>Restricted application</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>
请参阅:Specifying a Secure Connection
重定向端口
如果此连接器支持非SSL请求,并且请求是 已收到匹配的
<security-constraint>
需要SSL 运输时,Catalina会自动将请求重定向到 这里指定的端口号。
答案 1 :(得分:0)
我分析并找到了将请求从80重定向到443的方法。
在Windows服务器的bindings.xml文件(C:\ Jboss \ jboss-5.0.1.GA \ server \ default \ conf \ bootstrap)中,将端口从8080更改为80,因为此文件将具有引用到server.xml文件。
<bean class="org.jboss.services.binding.ServiceBindingMetadata">
<property name="serviceName">jboss.web:service=WebServer</property>
<property name="port">80</property>
进行上述更改后,我重新启动服务器一次并使用默认端口点击URL。它被重定向到https(443)。
这有助于强制所有非ssl请求以安全的方式重定向。