- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个从 HostnameVerifier 实现的自定义验证方法。
@Override
public boolean verify(String hostname, SSLSession session) {
此处的主机名 为我提供了客户端连接到的 URL 中的值(IP 地址或 dns 名称),SSLSession 为我提供了所有对等值像 peerCert(在我的例子中是服务器证书)和 peerCertChain。它还具有 peerHost,它是来自 URL 的值。
我正在尝试获取我的客户端连接到的服务器 IP 地址。 服务器(2 个)在负载均衡器之后。因此,在调用服务器时,我的客户端 URL 将始终具有负载均衡器 IP。
hostname
peerHost=session.getPeerHost()
这两个都给我 URL 的值(即 loadBalancer IP)。
如何在我的自定义 HostnameVerifier 中获取负载均衡器后面的服务器的 IP 地址?
SSLSession 已获得服务器证书..如何获取服务器 IP 地址?
对此非常感谢的任何建议/帮助
最佳答案
不可能从连接中获取负载平衡器后面的服务器的 IP 地址,因为连接是到负载平衡器而不是服务器。您可以到达服务器地址的唯一方法是负载均衡器告诉您它的地址。
假设负载均衡器是 TLS 连接的端点并且可以修改 TLS 内部的 HTTP 流量,则可以在响应中添加自定义 HTTP header 。但是,此信息仅在 TLS 握手完成后可用,即尚未在 HostnameVerifier 中可用,因为它是在 TLS 握手期间调用的。
如果负载平衡器不是 TLS 连接的端点,而只是将 TCP 连接原封不动地转发到服务器,您仍然无法从连接中获取 IP 地址,但如果服务器使用不同的证书,您可能会区分它们。证书的内容应该可以在 HostnameVerifier 中访问。
关于java - 如何在自定义 HostnameVerifier 中获取服务器 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42279141/
我正尝试在 google play 中发布我的应用程序并从 Google Play 收到此消息。 我们拒绝了您的应用程序,包名称为 xxx.xxx.xxx.xxx,因为它违反了我们的恶意行为或用户数据
我有问题,需要社区的帮助。现在 Google data protection 发生了变化我在 Google Developer Console 中收到警告。 Security warning Your
3 月 1 日之后,当我将我的应用程序上传到测试组时,我收到了来自 Google 的特定邮件,其中引用了: This information is intended for developers wi
提交到 Google Play 商店后,我收到一封电子邮件通知,告诉我我的 APK 正在使用 HostnameVerifier 接口(interface)的不安全实现。 我根本找不到在代码中使用 Ho
我在提交我的应用程序时遇到了问题。我已经完成了如下的 Volley 设置,但 Play 商店显示为拒绝。 主机名验证器 您的应用正在使用 HostnameVerifier 接口(interface)的
在什么情况下会在 Java 中使用 HostnameVerifier 而不是 TrustManager?一个比另一个推荐吗?查看 Java 文档(Interface HostnameVerifier
我正在使用 Koushik Dutta 的 Ion Android 的网络库。出于调试目的,我需要覆盖 SSL 检查。我发现了如何使用以下方法设置我自己的 SSL 上下文和 TrustManager:
我正在为我的 SSL 客户端实现一个主机名 validator 。我知道 HTTPS URL 连接的默认主机名 validator 是静态的。我的问题是我不希望主机名验证是静态的,因为我的客户端中有多
在我们的应用程序中,我们通过 HTTPS 对 auth 服务进行 HTTP 调用。我需要确保我们进行了所有必要的检查以确保连接安全。作为其中的一部分,我必须执行以下操作: 验证授权服务器的证书是否由知
在 one of the rules SonarQube 不允许使用假人 HostnameVerifier盲目接受每个主机: Client client = ClientBuilder.newBuil
Play 商店拒绝应用的原因: Your app(s) are using an unsafe implementation of the HostnameVerifier interface. Yo
我有下面的java类,它检查instance是否不为空并且匹配dev/qa/stg/staging/prod 和 hostnameVerification 为 true,然后 getHostnameV
我有一个从 HostnameVerifier 实现的自定义验证方法。 @Override public boolean verify(String hostname, SSLSession sessi
我收到来自 Google 的通知说:安全警报 您的应用使用了不安全的 HostnameVerifier 实现。请参阅这篇 Google 帮助中心文章了解详细信息,包括修复漏洞的截止日期。 是否有人收到
当我尝试向 AWS EC2 实例发出某些请求时,收到错误“无法分配连接,因为主机名验证程序 PgjdbcHostnameVerifier 无法验证 my_dns_of_postgresql_datab
我正在使用 DashO 6.10.1 进行 war 混淆,在此过程中,我在运行 obfuscate.xml 时遇到以下错误。 错误: com.preemptive.dasho.DashOClassNo
我收到以下错误, Security alert Your app is using an unsafe implementation ofHostnameVerifier. Please see th
最近我的一个应用收到了来自 Google Play 的安全警报,如下所示。 您的应用使用了不安全的 HostnameVerifier 实现.并引用链接 Google Play Help Center有
我们正在编写一个应连接到不同 LDAP 服务器的应用程序。对于每个服务器,我们可能只接受特定的证书。该证书中的主机名无关紧要。这很容易,当我们使用 LDAP 和 STARTTLS 时,因为我们可以使用
这个问题在这里已经有了答案: how to fix hostname verifier interface while uploading app to google play console (2
我是一名优秀的程序员,十分优秀!