事实上,我得到了将http重定向到https的方法,因为我在web.xml中添加了一个过滤器。 比如,
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/xxx/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
在这种情况下,我可以在https模式下请求/xxx/*
这样的网址。
还有一些像/yyy/*
这样的网址必须在http模式下申请,所以我该怎么办?
答案 0 :(得分:2)
在resin-web.xml中,您可以使用Resin重写标记重定向到其他URL并检查IfSecure等条件。
例如,您的WEB-INF / resin-web.xml可能看起来像
<web-app xmlns="http://caucho.com/ns/resin"
xmlns:resin="urn:java:com.caucho.resin">
<resin:Redirect regexp="^/xxx/" target="https://myhost.com/xxx/">
<resin:IfSecure value="false"/>
</resin:Redirect>
<resin:Redirect regexp="^/yyy/" target="http://myhost.com/yyy/">
<resin:IfSecure value="true"/>
</resin:Redirect>
</web-app>
/ xxx上的第一个匹配项,并检查它是否为SSL连接。如果不是SSL连接,则会重定向到主机的https。否则,该规则将被忽略。
您/ yyy上的第二个匹配项,并检查它是否为SSL连接。如果是SSL连接,则会重定向到主机的http。否则,该规则将被忽略。