gpt4 book ai didi

tomcat - Servlet Security transport-guarantee "CONFIDENTIAL"重定向后不显示请求的页面

转载 作者:行者123 更新时间:2023-11-28 22:20:45 24 4
gpt4 key购买 nike

我只是在尝试 Servlet 安全机制。我用过<transport-guarantee>CONFIDENTIAL</transport-guarantee>在我的 web.xml 中使用“BASIC”身份验证。访问受限资源时,重定向后页面不显示。以下是我的代码片段

tomcat-用户.xml

<role rolename="Admin"/>
<role rolename="Member"/>
<role rolename="Guest"/>
<user username="Annie" password="admin" roles="Admin, Member, Guest"/>
<user username="Diane" password="coder" roles="Member, Guest"/>
<user username="Ted" password="newbie" roles="Guest"/>

网络.xml

<web-app version="3.0">
<display-name>SecurityApp</display-name>
<servlet>
<servlet-name>BeerAppServlet</servlet-name>
<servlet-class>com.examples.servlets.BeerAppServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BeerAppServlet</servlet-name>
<url-pattern>/Beer/AddRecipe</url-pattern>
</servlet-mapping>

<security-role>
<role-name>Admin</role-name>
</security-role>
<security-role>
<role-name>Member</role-name>
</security-role>
<security-role>
<role-name>Guest</role-name>
</security-role>

<security-constraint>
<web-resource-collection>
<web-resource-name>Update</web-resource-name>
<url-pattern>/Beer/AddRecipe/*</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>

<auth-constraint>
<role-name>Admin</role-name>
<role-name>Member</role-name>
</auth-constraint>

<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

<login-config>
<auth-method>BASIC</auth-method>
</login-config>

</web-app>

我的Servlet类如下

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

PrintWriter writer = response.getWriter();

writer.println("<h3> Welcome to Beer Application Site</h3>");

}

当我按如下方式访问我的应用程序时

http://localhost:8083/SecurityApp/Beer/AddRecipe

重定向完成,上面提到的 url 更改为

https://localhost:8553/SecurityApp/Beer/AddRecipe 

并没有显示任何页面,浏览器显示如下

连接已重置页面加载时与服务器的连接被重置。该站点可能暂时不可用或太忙。请稍后重试。如果您无法加载任何页面,请检查您计算机的网络连接。如果您的计算机或网络受到防火墙或代理的保护,请确保允许 Firefox 访问网络。

我希望该页面显示欢迎访问 Beer 应用程序站点。我正在使用 tomcat apache-tomcat-7.0.47我在 server.xml 中的重定向端口是

<Connector connectionTimeout="20000" port="8083" protocol="HTTP/1.1" redirectPort="8553"/>

谁能告诉我这里出了什么问题,或者我是否遗漏了任何需要完成的配置。

最佳答案

在阅读了 Tomcat 文档后,我开始知道需要在 tomcat 的 server.xml 中启用 SSL

根据启用 SSL 配置的文档,我们首先需要生成 .keystore 文件。

这些是tomcat文档中提供的步骤

要在 Tomcat 上安装和配置 SSL 支持,您需要执行以下简单步骤。

通过执行以下命令创建一个 keystore 文件来存储服务器的私钥和自签名证书:

window :

%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA

由于我有一个windows系统,下面是我生成.keystore文件的步骤

C:\Program Files\Java\jdk1.7.0_45\bin>keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: AvinashReddy
What is the name of your organizational unit?
[Unknown]: Organization Name
What is the name of your organization?
[Unknown]: Organization Name
What is the name of your City or Locality?
[Unknown]: Hyderabad
What is the name of your State or Province?
[Unknown]: AndhraPradesh
What is the two-letter country code for this unit?
[Unknown]: AP
Is CN=AvinashReddy, OU=Organization Name, O=Organization Name, L=Hyderabad, ST=AndhraPradesh, C=AP correct?
[no]: yes

Enter key password for <tomcat>
(RETURN if same as keystore password):

根据文档,我使用了密码“changeit”(全部小写),在最后一步中,我刚刚按下“Enter”键,因此它使用了与以下问题“Enter keystore password”时输入的密码相同的密码"在生成 .keytstore 文件时被询问

我已经将tomcat中的server.xml修改如下

<Connector connectionTimeout="20000" port="8083" protocol="HTTP/1.1" redirectPort="8553"/

<Connector port="8553" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="${user.home}/.keystore" keystorePass="changeit" />

<Connector port="8010" protocol="AJP/1.3" redirectPort="8553"/>

tomcat 中重定向的默认端口是 8443,因为我的系统上运行了 2 个 tomcat 实例,所以我已将重定向端口从 8443 更改为 8553。

更改后我重新启动了我的 tomcat 并且可以访问受限资源。

我已经输入了

http://localhost:8083/SecurityApp/Beer/AddRecipe

然后这被重定向到

https://localhost:8553/SecurityApp/Beer/AddRecipe

因为我使用了“BASIC”身份验证机制,所以我被提示输入用户名和密码。提供凭据后,我能够看到我的页面如下

“欢迎来到啤酒应用网站”

下面是tomcat提供的配置SSL的链接

http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Configuration

关于tomcat - Servlet Security transport-guarantee "CONFIDENTIAL"重定向后不显示请求的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21162725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com