我正在执行一小段代码以登录受 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/