/******************************************************************************* * Copyright 2014 Federal Chancellery Austria * MOA-ID has been developed in a cooperation between BRZ, the Federal * Chancellery Austria - ICT staff unit, and Graz University of Technology. * * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by * the European Commission - subsequent versions of the EUPL (the "Licence"); * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: * http://www.osor.eu/eupl/ * * Unless required by applicable law or agreed to in writing, software * distributed under the Licence is distributed on an "AS IS" basis, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the Licence for the specific language governing permissions and * limitations under the Licence. * * This product combines work with different licenses. See the "NOTICE" text * file for details on the various modules and licenses. * The "NOTICE" text file is part of the distribution. Any derivative works * that you distribute must include a readable copy of the "NOTICE" text file. ******************************************************************************/ /* * Copyright 2003 Federal Chancellery Austria * MOA-ID has been developed in a cooperation between BRZ, the Federal * Chancellery Austria - ICT staff unit, and Graz University of Technology. * * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by * the European Commission - subsequent versions of the EUPL (the "Licence"); * You may not use this work except in compliance with the Licence. * You may obtain a copy of the Licence at: * http://www.osor.eu/eupl/ * * Unless required by applicable law or agreed to in writing, software * distributed under the Licence is distributed on an "AS IS" basis, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the Licence for the specific language governing permissions and * limitations under the Licence. * * This product combines work with different licenses. See the "NOTICE" text * file for details on the various modules and licenses. * The "NOTICE" text file is part of the distribution. Any derivative works * that you distribute must include a readable copy of the "NOTICE" text file. */ package at.gv.egovernment.moa.id.auth.builder; import at.gv.egovernment.moa.logging.Logger; import at.gv.egovernment.moa.util.Constants; /** * Builder for the <InfoboxReadRequest> structure * used for requesting the identity link from the security layer implementation. * * @author Paul Ivancsics * @version $Id$ */ public class InfoboxReadRequestBuilder implements Constants { /** * Constructor for InfoboxReadRequestBuilder. */ public InfoboxReadRequestBuilder() { } /** * Builds an <InfoboxReadRequest>. * * @param slVersion12 specifies whether the Security Layer version is * version 1.2 or not * @param businessService specifies whether the online application is a * business service or not * @param identityLinkDomainIdentifier the identification number of the business * company; maybe null if the OA * is a public service; must not be null * if the OA is a business service * @return <InfoboxReadRequest> as String */ public String build(boolean businessService, String identityLinkDomainIdentifier) { Logger.info("Building InfoBoxReadRequest"); String slPrefix; String slNsDeclaration; // if (slVersion12) { slPrefix = SL12_PREFIX; slNsDeclaration = SL12_NS_URI; // } else { // slPrefix = SL10_PREFIX; // slNsDeclaration = SL10_NS_URI; // } StringBuffer sb = new StringBuffer(""); sb.append("<"); sb.append(slPrefix); sb.append(":InfoboxReadRequest xmlns:"); sb.append(slPrefix); sb.append("=\""); sb.append(slNsDeclaration); sb.append("\">"); sb.append("<"); sb.append(slPrefix); sb.append(":InfoboxIdentifier>IdentityLink"); sb.append("<"); sb.append(slPrefix); sb.append(":BinaryFileParameters ContentIsXMLEntity=\"true\"/>"); if (businessService) { sb.append("<"); sb.append(slPrefix); sb.append(":BoxSpecificParameters>"); sb.append("<"); sb.append(slPrefix); sb.append(":IdentityLinkDomainIdentifier>"); sb.append(identityLinkDomainIdentifier); sb.append(""); sb.append(""); } sb.append(""); return sb.toString(); } /** * Builds an <InfoboxReadRequest>. * * @param slVersion12 specifies whether the Security Layer version is * version 1.2 or not * @param businessService specifies whether the online application is a * business service or not * @param identityLinkDomainIdentifier the identification number of the business * company; maybe null if the OA * is a public service; must not be null * if the OA is a business service * @return <InfoboxReadRequest> as String * */ public String buildStorkReadRequest(String identityLinkDomainIdentifier) { Logger.info("Building Stork InfoBoxReadRequest for " + identityLinkDomainIdentifier); String slPrefix; String slNsDeclaration; slPrefix = SL12_PREFIX; slNsDeclaration = SL12_NS_URI; StringBuffer sb = new StringBuffer(""); sb.append("<"); sb.append(slPrefix); sb.append(":InfoboxReadRequest xmlns:"); sb.append(slPrefix); sb.append("=\""); sb.append(slNsDeclaration); sb.append("\">"); sb.append("<"); sb.append(slPrefix); sb.append(":InfoboxIdentifier>IdentityLink"); sb.append("<"); sb.append(slPrefix); sb.append(":BinaryFileParameters ContentIsXMLEntity=\"true\"/>"); // append box parameters - necessary for stork? sb.append("<"); sb.append(slPrefix); sb.append(":BoxSpecificParameters>"); sb.append("<"); sb.append(slPrefix); sb.append(":IdentityLinkDomainIdentifier>"); sb.append(identityLinkDomainIdentifier); sb.append(""); sb.append(""); // end appending box parameters sb.append(""); return sb.toString(); } }