为什么https到http切换问题? http到https的工作正常

时间:2012-08-30 14:01:39

标签: java-ee ssl https struts2 glassfish

我希望我的Web应用程序能够启用ssl。它应该适用于https和http两者。我希望所有登录的页面都在“https”上,而其他页面(当用户未登录时)应该在“http”上。我已经设置了web.xml以使用安全约束作为

<security-constraint>
    <web-resource-collection>
        <web-resource-name>my application</web-resource-name>
        <url-pattern>/struts/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint>
</security-constraint>

现在,它完全适用于https,外部页面也适用于http。但问题是当我从http切换到https,反之亦然,然后它不起作用。它没有获得css和js文件。我正在使用glassfish 3.1。我使用以下代码来获取路径:

String pathStr = request.getServerName() + ":"
        + request.getServerPort() + request.getContextPath();
String contextPath = "http://" + pathStr;
String secureContextPath = "https://" + pathStr;
String controllerContextPath = contextPath + "/struts";
String secureControllerContextPath = secureContextPath + "/struts";

并包含css / js文件:

<link rel="stylesheet" type="text/css"
href="<%=contextPath%>/css/styl.css">

我认为由于https适用于其他端口(443),因此无法获取实际端口来获取文件。

0 个答案:

没有答案