Java 使用OpenSaml3.1.1准备SAML身份验证请求

Java 使用OpenSaml3.1.1准备SAML身份验证请求,java,saml-2.0,shibboleth,opensaml,Java,Saml 2.0,Shibboleth,Opensaml,我们正在使用shibboleth idp,使用shibboleth的SSO解决方案对用户进行身份验证。我们可以进行idp升级(从2.4升级到3.1.1),还可以检查idp 3.1.1的状态。() 正如我们所知,“IDP2.4”使用的是OpenSaml2.6,IDP3.1.1使用的是OpenSAML3.1.1 我们对OpenSAML 3.1.1有以下疑问 private AuthnRequest getAuthnRequest(DateTime issueInstant,

我们正在使用shibboleth idp,使用shibboleth的SSO解决方案对用户进行身份验证。我们可以进行idp升级(从2.4升级到3.1.1),还可以检查idp 3.1.1的状态。()

正如我们所知,“IDP2.4”使用的是OpenSaml2.6,IDP3.1.1使用的是OpenSAML3.1.1

我们对OpenSAML 3.1.1有以下疑问

            private AuthnRequest getAuthnRequest(DateTime issueInstant, Issuer issuer,
                                            String consumerUrl, String spUrl) {

                            AuthnRequestBuilder authRequestBuilder = new AuthnRequestBuilder();
A) OpenSAML 3.1.1中用于“SecureRandomIdentifierGenerator”的替代API

A.1)在SP(非shibboleth SP组件)上使用Open SAML 2.6生成SessionID示例如下所示:

SecureRandomIdentifierGenerator生成器=新的SecureRandomIdentifierGenerator(); sessionId=generator.generateIdentifier()

A.2)使用开放式SAML 3.1.1

B) 如何使用Open SAML 3.1.1发送SAML请求 B.1)使用开放式SAML 2.6从SP(非shibboleth SP组件)到Idp 2.4(shibboleth组件)的样本SAML请求如下所示: 我们调用“getAuthnRequest()”方法来生成SAML请求(我们使用的是SAML2.6)

B.2)使用开放式SAML 3.1.1


请建议我们使用opensaml 3.1.1来准备saml authn请求。

这是我从官方论坛得到的回复:

A) OpenSAML 3.1.1中用于“SecureRandomIdentifierGenerator”的替代API

A.1)在SP(非shibboleth SP组件)上使用Open SAML 2.6生成SessionID示例如下所示:

SecureRandomIdentifierGenerator生成器=新的SecureRandomIdentifierGenerator(); sessionId=generator.generateIdentifier()

A.2)使用开放式SAML 3.1.1

v3版本是net.shibboleth.utilities.java.support.security.SecureRandomIdentifierGenerationStrategy 位于java支持中

B) 如何使用Open SAML 3.1.1发送SAML请求

            private AuthnRequest getAuthnRequest(DateTime issueInstant, Issuer issuer,
                                            String consumerUrl, String spUrl) {

                            AuthnRequestBuilder authRequestBuilder = new AuthnRequestBuilder();
B.2)使用开放式SAML 3.1.1

包名称已更改,现在位于org.opensaml.saml.saml2.core.impl.AuthnRequestBuilder中。但除此之外,我认为应该完全相同。您不是在使用Eclipse还是其他IDE?它可以帮助进行简单的包导入更改

顺便说一句,在v2和v3中,我们都不鼓励直接使用这样的-Builder类。我们建议您通过注册的提供者获得XMLObject生成器、封送器和解封器。在v2中,生成器用法:

在v3中,还没有wiki文档,但是可以通过org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport使用全局XMLObjectProviderRegistry,或者使用org.opensaml.core.xml.util.XMLObjectSupport上的更高级别方法