java - SSL 连接中的 IllegalStateException,执行 SAML 登录?

标签 java android ssl https saml

我正在执行一小段代码以登录受 SAML 保护的网站。

我有这段代码:

HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();

我通过它连接到某些 URL 的安全 SSL 连接。 前两次,使用两个不同的 URL,它工作得很好,但是后来,当我尝试执行特定请求(准确地说是对 IDP 服务器的 SAMLRequest)时,脚本会抛出这个错误:

[ATTENTION] An error occured: java.lang.IllegalStateException: connection not yet open

我真的不明白发生了什么。连接到 SP 时,连接良好(我也能够获得此信息,所以我认为 SSL 正在工作 con.getCipherSuite() = TLS_RSA_WITH_AES_128_CBC_SHA),但随后停止。

由于我尝试发出的请求是 SAML 方案中唯一真正重要的请求,在我尝试执行的三个请求中,我认为这是服务器端问题:

Connect to the homepage of the service provider (SP) in order to get JSESSIONID cookie: it works
Connect to the SP login page in order to get the SAML Request: it works
Connect to the IDP in order to send (via GET) the SAML Request: ERROR.

我怎样才能摆脱这个问题,并确保连接安全?我强烈需要避免 MINM 攻击,因为该脚本将在 Android 应用程序中实现,这需要高级别的安全性...

最佳答案

抱歉,我可能有点跑题了! 您为此使用 Google 应用引擎吗?由于谷歌应用引擎不支持 HttpsUrlConnection。更多请阅读here

关于java - SSL 连接中的 IllegalStateException,执行 SAML 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15388116/

相关文章:

java - 如何以编程方式更改文件权限?

java - 使用mockito模拟android.content.res.Configuration

c - 使用异步套接字在 C 应用程序中实现加密

java - 如何防止SIGINT信号杀死Java中的子进程

孙子的java spring继承(供应商/客户与外国/国家)

android - 处理互联网连接 : Special Case

android - 在android中禁用微调器

php - 将 CodeIgniter 网站移动到新域但同一主机

ssl - 无法确定哪个包更新导致 python 请求包的 CA 证书位置发生变化

java - 检查类型是否可分配不适用于原始类型