/******************************************************************************* * 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. *******************************************************************************/ package at.gv.egovernment.moa.id.configuration.data; import java.util.ArrayList; import java.util.List; import at.gv.egovernment.moa.id.commons.config.persistence.MOAIDConfigurationImpl; import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead; import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils; import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentGeneral; import at.gv.egovernment.moa.id.commons.db.dao.config.CPEPS; import at.gv.egovernment.moa.id.commons.db.dao.config.ForeignIdentities; import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration; import at.gv.egovernment.moa.id.commons.db.dao.config.STORK; import at.gv.egovernment.moa.id.commons.db.dao.config.StorkAttribute; import org.apache.log4j.Logger; public class GeneralStorkConfig { private List cpepslist; private List attributes; private int qaa; private static final Logger log = Logger.getLogger(GeneralStorkConfig.class); private MOAIDConfiguration dbconfig = null; /** * */ public GeneralStorkConfig() { dbconfig = ConfigurationDBRead.getMOAIDConfiguration(); } @Override protected void finalize() throws Throwable { ConfigurationDBUtils.closeSession(); super.finalize(); } public void parse(MOAIDConfiguration config) { log.info("Initializing general Stork config"); if (config != null) { AuthComponentGeneral auth = config.getAuthComponentGeneral(); if (auth != null) { ForeignIdentities foreign = auth.getForeignIdentities(); if (foreign != null) { STORK stork = foreign.getSTORK(); cpepslist = new ArrayList(); attributes = new ArrayList(); if (stork != null) { // deep clone all the things // to foreclose lazyloading session timeouts for(CPEPS current : stork.getCPEPS()) { cpepslist.add(current); } List tmp = stork.getAttributes(); if(null != tmp) { for(StorkAttribute current : tmp) attributes.add(current); } try { qaa = stork.getQualityAuthenticationAssuranceLevel(); } catch(NullPointerException e) { qaa = 4; } } if (cpepslist.isEmpty()) cpepslist = null; if(attributes.isEmpty()) attributes.add(new StorkAttribute()); } } } } public List getCpepslist() { if (null == cpepslist) return null; //MOAIDConfiguration dbconfig = ConfigurationDBRead.getMOAIDConfiguration(); try { List cpepss = dbconfig.getAuthComponentGeneral().getForeignIdentities().getSTORK().getCPEPS(); if (cpepss != null) { // make CountryCode "readonly" for (CPEPS newone : cpepslist) { for (CPEPS current : cpepss) { if (null != newone) if (current.getHjid().equals(newone.getHjid())) { newone.setCountryCode(current.getCountryCode()); break; } } } } return cpepslist; } catch (NullPointerException e) { return null; } } public void setCpepslist(List list) { cpepslist = list; } public List getAttributes() { return attributes; } public void setAttributes(List attributes) { this.attributes = attributes; } public int getDefaultQaa() { return qaa; } public void setDefaultQaa(int qaa) { this.qaa = qaa; } }