java - 只有在 jsp 中启用时才重定向到 SSL

标签 java jsp ssl

我一直在努力寻找一种方法来轻松判断 Java 服务器是否已从 JSP 启用 SSL 以重定向单个页面。我这样做的原因是,如果启用了 SSL,我只想转发到 SSL,这样可以轻松地在我们的本地开发系统中进行测试,而无需设置证书,然后部署到我们的发布系统并让证书“正常工作”。

我已经查看了尝试创建 SslSocketFactory 并查看它是否正常工作而没有抛出异常,但这似乎并没有像我想的那样工作。然而,我不是特别喜欢这种方法,因为我必须花时间创建工厂才能将其丢弃。我真的只是在寻找一个我可以使用的 public boolean isSslEnabled() 方法调用。

目前我们拥有的是默认状态是不使用 HTTPS,但是在发布系统上您可以通过 HTTPS 访问该站点。这并不理想,因为用户仍然可以通过 HTTP 访问站点,然后所有内容都将以明文形式发送。我也不打算加密整个服务器,如果启用了 SSL,则只加密一个页面。

最佳答案

您的 Java 代码不应该关心是否启用了 SSL。尽量只保留他的配置。

如果您在 web.xml 中设置了 SSL 要求,那么您的开发人员可以覆盖他们的本地 web.xml 以满足他们的本地服务器要求(例如 eclipse)。

如果您担心每个生产服务器的 SSL,最好创建您自己的证书颁发机构并生成您自己的 SSL 证书。这样您就可以将完全相同的 EAR 或 WAR 部署到预生产和生产环境。您不想在每个环境中摆弄您的部署。

Jboss SSL config

Tomcat SSL config

关于java - 只有在 jsp 中启用时才重定向到 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10768421/

相关文章:

java - 使用java获取ping结果

用于资金处理的 Android 应用程序

java - 如何制作网络服务并将android应用程序与其连接

java - IF 语句未执行,但 ELSE IF 语句工作正常

java - 使 IntelliJ 标记所有参数而不仅仅是字符串参数

javascript - 我的谷歌图表 x 轴和 y 轴未正确显示

Java 版本在 Linux 上没有变化

java - 小服务程序 :The server encountered an internal error that prevented it from fulfilling this request

ssl - 使用 Let's Encrypt 保护 GitLab 页面得到 404

python - Python 请求的 SSL 握手错误