我能够成功设置 websphere 以使用 IdP 进行身份验证并按预期访问 Web 资源。但是现在我的应用程序需要 SAML token /响应中可用的声明/断言/属性才能继续进行。在我的 Java 应用程序中访问 SAML 响应/属性的最佳选项是什么?
最佳答案
我想补充一下之前的答案。对于 Websphere Application Server,如果您正在使用已经可用的 WebsphereSamlSP 应用程序作为 SP,那么您可以在 IBMWebpshereSamlACSListenerServlet 的
获取 saml 属性。或者在您的自定义 SP 代码中使用它。handleRedirect()
方法中使用以下代码
SAMLToken samlToken = (SAMLToken) AccessController
.doPrivileged(new java.security.PrivilegedExceptionAction() {
public Object run() throws java.lang.Exception {
final java.util.Iterator authIterator = subject
.getPrivateCredentials(SAMLToken.class)
.iterator();
if (authIterator.hasNext()) {
final SAMLToken token = (SAMLToken) authIterator
.next();
return token;
}
return null;
}
});
// Log attribute name and values
List<SAMLAttribute> attributes = samlToken.getSAMLAttributes();
if (attributes != null && !attributes.isEmpty()) {
for (SAMLAttribute attr : attributes) {
logger.debug(attr.getName());
if (attr.getStringAttributeValue() != null) {
for (int i = 0; i < attr.getStringAttributeValue().length; i++) {
logger.debug(attr.getStringAttributeValue()[i]);
}
}
}
}
关于java - Websphere Application Server SAML token 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34887621/