在当今信息化时代,企业级单点登录(SSO)已经成为提升用户体验和安全性的一种重要手段。微软的Active Directory Federation Services(ADFS)是业界广泛使用的单点登录解决方案之一。本文将为您揭秘如何使用Java轻松对接ADFS,实现企业级单点登录。
一、ADFS简介
ADFS是微软推出的一款基于XML和SAML(Security Assertion Markup Language)的联邦身份管理解决方案。它允许用户使用一个账户在多个系统中进行登录,从而简化了用户的登录过程,提高了安全性。
二、Java对接ADFS的准备工作
环境搭建:确保您的Java开发环境已经搭建完毕,包括JDK、IDE(如Eclipse、IntelliJ IDEA)等。
ADFS配置:在ADFS服务器上,您需要配置信任关系、创建应用程序代理(Application Proxy)以及生成SAML断言签名密钥。
获取SAML元数据:通过ADFS服务器提供的元数据,获取到用于身份验证的SAML断言签名密钥和认证URL。
三、Java对接ADFS的关键步骤
创建SAML请求:在Java代码中,使用SAML库(如Apache SAML)创建SAML请求。请求中包含用户信息、认证URL等参数。
发送SAML请求:将SAML请求发送到ADFS服务器进行认证。
接收SAML响应:ADFS服务器认证用户后,返回SAML响应。在Java代码中解析SAML响应,获取用户信息。
用户信息处理:根据解析得到的用户信息,完成用户登录、角色验证等操作。
四、示例代码
以下是一个简单的Java代码示例,展示如何使用Apache SAML库创建SAML请求并发送到ADFS服务器:
”`java import org.apache.saml.saml2.core.AuthnRequest; import org.apache.saml.saml2.core.RequestAbstractType; import org.apache.saml.saml2.core.RequestAbstractTypeImpl; import org.apache.saml.saml2.core.Response; import org.apache.saml.saml2.core.ResponseAbstractType; import org.apache.saml.saml2.core.ResponseAbstractTypeImpl; import org.apache.saml.saml2.core.Subject; import org.apache.saml.saml2.core.SubjectAbstractType; import org.apache.saml.saml2.core.SubjectAbstractTypeImpl; import org.apache.saml.saml2.core.SubjectConfirmation; import org.apache.saml.saml2.core.SubjectConfirmationData; import org.apache.saml.saml2.core.SubjectConfirmationDataAbstractType; import org.apache.saml.saml2.core.SubjectConfirmationDataAbstractTypeImpl; import org.apache.saml.saml2.core.SubjectConfirmationAbstractType; import org.apache.saml.saml2.core.SubjectConfirmationAbstractTypeImpl;
public class SAMLExample {
public static void main(String[] args) {
// 创建SAML请求
AuthnRequest authnRequest = new AuthnRequest();
authnRequest.setAssertionConsumerServiceURL("https://yourdomain.com/acs");
authnRequest.setIssuer("https://yourdomain.com");
authnRequest.setProtocolBinding("urn:oasis:names:tc:SAML:2.0:protocol");
authnRequest.setForceAuthn(true);
authnRequest.setIsPassive(false);
// 发送SAML请求到ADFS服务器
// ...
// 解析SAML响应
Response response = new Response();
response.setIssuer("https://yourdomain.com");
response.setDestination("https://yourdomain.com/acs");
// ...
// 获取用户信息
Subject subject = new Subject();
SubjectConfirmation subjectConfirmation = new SubjectConfirmation();
SubjectConfirmationData subjectConfirmationData = new SubjectConfirmationData();
subjectConfirmationDataAbstractTypeImpl.setAssertionConsumerServiceURL("https://yourdomain.com/acs");
subjectConfirmationDataAbstractTypeImpl.setNotBefore(new Date());
subjectConfirmationDataAbstractTypeImpl.setNotOnOrAfter(new Date());
subjectConfirmationAbstractTypeImpl.setSubjectConfirmationData(subjectConfirmationDataAbstractTypeImpl);
subjectConfirmationAbstractTypeImpl.setMethod("urn:oasis:names:tc:SAML:2.0:cm:bearer");
subjectConfirmationAbstractTypeImpl.getSubjectConfirmationData().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
subjectAbstractTypeImpl.getSubjectConfirmation().add(subjectConfirmationAbstractTypeImpl);
