【发布时间】:2011-08-23 17:16:21
【问题描述】:
我在这篇文章之后配置了一个 Tomcat 实例:http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html。我注释掉了 HTTP 连接器,因为我希望我的演示应用程序只能通过 HTTPS 访问。我这样配置了 HTTPS 连接器:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystorePass="nopass"
keystoreFile="/home/someuser/.keystore" keyAlias="tomcat" />
当我使用 HTTPS 访问演示应用程序的 servlet 的 URL 时,一切正常。
当我尝试使用 HTTP URL 访问它时,我预计它会返回 403 或类似错误。相反,我下载了一些小的(11 字节?)二进制文件,其名称与 servlet 的名称匹配。
有没有人遇到过类似的问题?你是怎么解决的?我应该检查什么以确保我做的一切都正确?
编辑:我尝试使用 curl 而不是浏览器点击相同的连接器,并注意到它没有返回任何标题。哦,响应的大小是 7 个字节,而不是 11 个。
编辑 2:这是我的演示应用程序的 web.xml 中与安全相关的部分:
<security-constraint>
<web-resource-collection>
<web-resource-name>Secure Servlet</web-resource-name>
<url-pattern>/SecureServlet</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
<auth-constraint>
<role-name>connect</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description>The role required to connect to the application
</description>
<role-name>connect</role-name>
</security-role>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
【问题讨论】:
-
我昨天在superuser问了同样的问题。