/* * 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.auth.data; import java.security.cert.CertificateEncodingException; import java.security.cert.CertificateException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import at.gv.egiz.eaaf.core.api.idp.auth.ISSOManager; import at.gv.egiz.eaaf.core.impl.idp.auth.data.AuthProcessDataWrapper; import at.gv.egovernment.moa.id.commons.api.data.AuthProzessDataConstants; import at.gv.egovernment.moa.id.commons.api.data.ExtendedSAMLAttribute; import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession; import at.gv.egovernment.moa.id.commons.api.data.IMISMandate; import at.gv.egovernment.moa.id.commons.api.data.IVerifiyXMLSignatureResponse; import at.gv.egovernment.moa.logging.Logger; import iaik.x509.X509Certificate; /** * @author tlenz * */ public class AuthenticationSessionWrapper extends AuthProcessDataWrapper implements IAuthenticationSession, AuthProzessDataConstants { /** * @param genericDataStorage */ public AuthenticationSessionWrapper(Map genericDataStorage) { super(genericDataStorage); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getSignerCertificate() */ @Override public X509Certificate getSignerCertificate() { byte[] encCert = getEncodedSignerCertificate(); if (encCert != null) { try { return new X509Certificate(encCert); } catch (CertificateException e) { Logger.warn("Signer certificate can not be loaded from session database!", e); } } return null; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getEncodedSignerCertificate() */ @Override public byte[] getEncodedSignerCertificate() { return wrapStringObject(VALUE_SIGNER_CERT, null, byte[].class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setSignerCertificate(iaik.x509.X509Certificate) */ @Override public void setSignerCertificate(X509Certificate signerCertificate) { try { authProcessData.put(VALUE_SIGNER_CERT, signerCertificate.getEncoded()); }catch (CertificateEncodingException e) { Logger.warn("Signer certificate can not be stored to session database!", e); } } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getSessionID() */ @Override public String getSSOSessionID() { return wrapStringObject(ISSOManager.AUTH_DATA_SSO_SESSIONID, null, String.class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setSessionID(java.lang.String) */ @Override public void setSSOSessionID(String sessionId) { authProcessData.put(ISSOManager.AUTH_DATA_SSO_SESSIONID, sessionId); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getBkuURL() */ @Override public String getBkuURL() { return wrapStringObject(VALUE_BKUURL, null, String.class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setBkuURL(java.lang.String) */ @Override public void setBkuURL(String bkuURL) { authProcessData.put(VALUE_BKUURL, bkuURL); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getAuthBlock() */ @Override public String getAuthBlock() { return wrapStringObject(VALUE_AUTHBLOCK, null, String.class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setAuthBlock(java.lang.String) */ @Override public void setAuthBlock(String authBlock) { authProcessData.put(VALUE_AUTHBLOCK, authBlock); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getExtendedSAMLAttributesAUTH() */ @Override public List getExtendedSAMLAttributesAUTH() { return wrapStringObject(VALUE_EXTENTEDSAMLATTRAUTH, new ArrayList(), List.class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setExtendedSAMLAttributesAUTH(java.util.List) */ @Override public void setExtendedSAMLAttributesAUTH(List extendedSAMLAttributesAUTH) { authProcessData.put(VALUE_EXTENTEDSAMLATTRAUTH, extendedSAMLAttributesAUTH); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getExtendedSAMLAttributesOA() */ @Override public List getExtendedSAMLAttributesOA() { return wrapStringObject(VALUE_EXTENTEDSAMLATTROA, null, List.class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setExtendedSAMLAttributesOA(java.util.List) */ @Override public void setExtendedSAMLAttributesOA(List extendedSAMLAttributesOA) { authProcessData.put(VALUE_EXTENTEDSAMLATTROA, extendedSAMLAttributesOA); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getSAMLAttributeGebeORwbpk() */ @Override public boolean getSAMLAttributeGebeORwbpk() { return wrapStringObject(FLAG_SAMLATTRIBUTEGEBEORWBPK, false, Boolean.class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setSAMLAttributeGebeORwbpk(boolean) */ @Override public void setSAMLAttributeGebeORwbpk(boolean samlAttributeGebeORwbpk) { authProcessData.put(FLAG_SAMLATTRIBUTEGEBEORWBPK, samlAttributeGebeORwbpk); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setUseMandate(java.lang.String) */ @Override public void setUseMandate(String useMandate) { if (useMandate.compareToIgnoreCase("true") == 0) setUseMandates(true); else setUseMandates(false); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setMISSessionID(java.lang.String) */ @Override public void setMISSessionID(String misSessionID) { authProcessData.put(VALUE_MISSESSIONID, misSessionID); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getMISSessionID() */ @Override public String getMISSessionID() { return wrapStringObject(VALUE_MISSESSIONID, null, String.class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getMandateReferenceValue() */ @Override public String getMandateReferenceValue() { return wrapStringObject(VALUE_MISREFVALUE, null, String.class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setMandateReferenceValue(java.lang.String) */ @Override public void setMandateReferenceValue(String mandateReferenceValue) { authProcessData.put(VALUE_MISREFVALUE, mandateReferenceValue); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getXMLVerifySignatureResponse() */ @Override public IVerifiyXMLSignatureResponse getXMLVerifySignatureResponse() { return wrapStringObject(VALUE_VERIFYSIGRESP, null, IVerifiyXMLSignatureResponse.class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setXMLVerifySignatureResponse(at.gv.egovernment.moa.id.auth.data.VerifyXMLSignatureResponse) */ @Override public void setXMLVerifySignatureResponse(IVerifiyXMLSignatureResponse xMLVerifySignatureResponse) { authProcessData.put(VALUE_VERIFYSIGRESP, xMLVerifySignatureResponse); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getMISMandate() */ @Override public IMISMandate getMISMandate() { return wrapStringObject(VALUE_MISMANDATE, null, IMISMandate.class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setMISMandate(at.gv.egovernment.moa.id.data.MISMandate) */ @Override public void setMISMandate(IMISMandate mandate) { authProcessData.put(VALUE_MISMANDATE, mandate); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#getAuthBlockTokken() */ @Override public String getAuthBlockTokken() { return wrapStringObject(VALUE_AUTNBLOCKTOKKEN, null, String.class); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IAuthenticationSession#setAuthBlockTokken(java.lang.String) */ @Override public void setAuthBlockTokken(String authBlockTokken) { authProcessData.put(VALUE_AUTNBLOCKTOKKEN, authBlockTokken); } @Override public Map getKeyValueRepresentationFromAuthSession() { return Collections.unmodifiableMap(authProcessData); } }