rest - 具有 HTTPS REST 设置的 Tomcat

标签 rest tomcat ssl https jersey

我正在使用 Jersey for Tomcat 编写 REST 服务器。我精通 Java,但这是我第一次为网络写作,所以我希望这个问题不是愚蠢的。我试过到处搜索,但无法得出我理解的答案。

我正在尝试使用 HTTPS 和基本身份验证,但我不知道是否必须在实际的 Java 中编写任何内容才能完成此操作。 Tomcat 是否负责 SSL 信息的所有加密/解密,或者我是否必须在我的服务器代码中做一些事情来处理这个?在客户端我知道我将手动执行此操作,但我找不到有关如何在服务器端执行此操作的任何信息。它是Tomcat设置吗?我是否必须将 Tomcat 设置为仅将 HTTPS 流量转发到我的服务器,然后它会解密并将解密后的信息发送到我的服务器,在那里它会像普通的未加密命令一样运行?

最佳答案

对于服务器,首先需要确保Tomcat配置为支持HTTPS/SSL/TLS。这包括设置 keystore 和编辑配置文件。您可以在 SSL/TLS Configuration HOW-TO 查看有关如何执行此操作的所有详细信息。 .请注意,该链接适用于 Tomcat 8。对于 Tomcat 7,您应该搜索相应的文档。

设置完成后,要真正使用 HTTPS,剩下要做的就是设置 <transport>CONFIDENTIAL在您的 Web 应用程序的 web.xml 文件中。

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

如果您从未设置过 web.xml 安全性,那么您需要花时间阅读 Securing Web Applications .还有一个部分是关于使用 web.xml 配置设置基本身份验证。

当您获得有关基本身份验证的部分时,您会注意到 <realm-name> 的配置.领域是需要用 Tomcat 设置的东西。这基本上是 Tomcat 将查找身份验证的用户存储的访问点。要阅读有关设置领域的更多信息,请参阅 Realm Configuration HOW-TO (同样这是一个 Tomcat 8 链接)。有不同类型的领域可供选择,因此只需选择一种,例如 JDBC 领域。

就是这样。我认为我提供的链接不是提供教程,而是商品官方资源,它们在解释方面比我做得更好。如果这对您来说是全新的,您可能需要一天时间来设置所有内容,但我相信您会从这些文档中学到很多东西。

另一件事,如果你想做授权,一旦你在 tomcat 中用角色设置领域(参见 JDBC 领域部分的例子),你可以使用 web.xml 中的角色授权配置(参见“Securing Web应用程序”链接)或者您可以使用 Jersey 的基于角色的授权,这将提供更精细的控制。为此,请参阅 Authorization - securing resources

关于rest - 具有 HTTPS REST 设置的 Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34688719/

相关文章:

java - 捕获所有 Tomcat (GWT) servlet 中所有未处理异常的最佳方法

.htaccess - 检查apache是​​否安装了htaccess的ssl证书

.net - 使用 C# 的 Sharepoint 2013 REST API 调用

java - 使用 AJAX、JAVA WS-RS @Post 发送 Xml

http - 是否有可用的 JMX - REST 桥?

java - JAX-RS 仅序列化少数属性

spring - 如何在使用 Nginx 作为反向代理的 Spring Boot 应用程序上记录嵌入式 Tomcat 访问日志上的真实客户端 IP?

java - 反编译项目在tomcat上运行

ssl - msmdpump.dll 忽略基本身份验证

amazon-web-services - 如何借助新的 AWS Certificate Manager 服务将 SSL 证书添加到 AWS EC2