我正在实施一小段代码,以便登录受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应用程序中实现...