java - Websphere Application Server SAML token 处理

标签 java websphere saml websphere-7 websphere-8

我能够成功设置 websphere 以使用 IdP 进行身份验证并按预期访问 Web 资源。但是现在我的应用程序需要 SAML token /响应中可用的声明/断言/属性才能继续进行。在我的 Java 应用程序中访问 SAML 响应/属性的最佳选项是什么?

最佳答案

我想补充一下之前的答案。对于 Websphere Application Server,如果您正在使用已经可用的 WebsphereSamlSP 应用程序作为 SP,那么您可以在 IBMWebpshereSamlACSListenerServlet 的 handleRedirect() 方法中使用以下代码 获取 saml 属性。或者在您的自定义 SP 代码中使用它。

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/

相关文章:

java 8 - 在 HashMap 中存储方法并从 map 中的方法获取返回值

java - Groovy 能做 Java 能做的一切吗?

web-services - OpenSSO SSOToken 到 SAML 断言并返回

java - Spring/Tomcat JDBC初始化

java - 为什么 JDialog 不触发关键监听器的 keyPressed 方法?

JSF 2 相当于 IBM 的 hx :scriptCollector pre- and postRender

java - 通过 JNDI 引用设置 Hibernate 的默认架构

web-services - 为什么 Web 服务安全需要单独的标准?

ruby - 模式加载时出现 Nokogiri::XML::Schema SyntaxError

ruby-on-rails - Rails - 对多个 IDP 使用 omniauth-saml