我正在使用此 url 中的代码执行代理 SAML2.0 SSO:http://svn.wso2.org/repos/wso2/people/asela/wso2-samples/sso_webapp/ 但 它不起作用注销. 原谅我的英语。有人告诉我,当身份服务器发送身份验证响应时,会在其中发送一个会话索引值,并且您需要在注销请求中向身份服务器返回完全相同的值。如何使用 SAML 2.0 获取会话的索引值?这是我的类 LogoutRequestBuilder public LogoutRequest buildLogoutRequest(String subject, String reason) { Util.doBootstrap(); LogoutRequest logoutReq = new org.opensaml.saml2.core.impl.LogoutRequestBuilder().buildObject(); logoutReq.setID(Util.createID());
DateTime issueInstant = new DateTime();
logoutReq.setIssueInstant(issueInstant);
logoutReq.setNotOnOrAfter(new DateTime(issueInstant.getMillis() + 5 * 60 * 1000));
IssuerBuilder issuerBuilder = new IssuerBuilder();
Issuer issuer = issuerBuilder.buildObject();
issuer.setValue(Util.getProperty(SSOConstants.ISSUER_ID));
logoutReq.setIssuer(issuer);
NameID nameId = new NameIDBuilder().buildObject();
nameId.setFormat(SSOConstants.SAML_NAME_ID_POLICY);
nameId.setValue(subject);
logoutReq.setNameID(nameId);
SessionIndex sessionIndex = new SessionIndexBuilder().buildObject();
sessionIndex.setSessionIndex(Util.createID());
logoutReq.getSessionIndexes().add(sessionIndex);
logoutReq.setReason(reason);
return logoutReq;
}
}