From 729500a159c61a697c528e0c86abd132f4380b0d Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Thu, 12 Jul 2018 16:10:53 +0200 Subject: some more updates --- .../AbstractAuthProtocolModulController.java | 51 ++++++++++++++-------- 1 file changed, 34 insertions(+), 17 deletions(-) (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/AbstractAuthProtocolModulController.java') diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/AbstractAuthProtocolModulController.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/AbstractAuthProtocolModulController.java index d72ee404..92b388a6 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/AbstractAuthProtocolModulController.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/controller/AbstractAuthProtocolModulController.java @@ -1,3 +1,27 @@ +/******************************************************************************* + * Copyright 2017 Graz University of Technology + * EAAF-Core Components has been developed in a cooperation between EGIZ, + * A-SIT+, A-SIT, and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.2 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: + * https://joinup.ec.europa.eu/news/understanding-eupl-v12 + * + * 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.egiz.eaaf.core.impl.idp.controller; @@ -14,7 +38,7 @@ import org.springframework.beans.factory.annotation.Autowired; import at.gv.egiz.components.eventlog.api.EventConstants; import at.gv.egiz.eaaf.core.api.IRequest; -import at.gv.egiz.eaaf.core.api.IStatusMessager; +import at.gv.egiz.eaaf.core.api.IStatusMessenger; import at.gv.egiz.eaaf.core.api.idp.IAction; import at.gv.egiz.eaaf.core.api.idp.IAuthData; import at.gv.egiz.eaaf.core.api.idp.IAuthenticationDataBuilder; @@ -61,9 +85,8 @@ public abstract class AbstractAuthProtocolModulController extends AbstractContro if (oaParam == null) throw new EAAFAuthenticationException( - IStatusMessager.CODES_INTERNAL_ERROR_AUTH_NOSPCONFIG, - new Object[] { pendingReq.getSPEntityId() }, - "No Service Provider configuration found."); + IStatusMessenger.CODES_INTERNAL_ERROR_AUTH_NOSPCONFIG, + new Object[] { pendingReq.getSPEntityId() }); if (authmanager.doAuthentication(req, resp, pendingReq)) { //pending request is already authenticated --> protocol-specific postProcessing can start directly @@ -103,9 +126,12 @@ public abstract class AbstractAuthProtocolModulController extends AbstractContro //if Single Sign-On functionality is enabled for this request if (pendingReq.needSingleSignOnFunctionality()) { - if (ssoManager != null) + if (ssoManager != null) { newSSOSessionId = ssoManager.createNewSSOSessionCookie(req, resp, pendingReq); - else + if (StringUtils.isEmpty(pendingReq.getInternalSSOSessionIdentifier())) + ssoManager.createNewSSOSession(pendingReq, newSSOSessionId); + + } else log.warn("SSO is requested but there is not SSO Session-Manager available"); } @@ -119,17 +145,8 @@ public abstract class AbstractAuthProtocolModulController extends AbstractContro //Store OA specific SSO session information if an SSO cookie is set if (StringUtils.isNotEmpty(newSSOSessionId)) { try { - //create new SSO session, if actually no SSO session exists - if (StringUtils.isEmpty(pendingReq.getSSOSessionIdentifier())) { - ssoManager.createNewSSOSession(pendingReq, newSSOSessionId, sloInformation); - - //MOA SSO-session already exists only update is required - } else { - ssoManager.updateSSOSession(pendingReq, newSSOSessionId, sloInformation); - - - } - + ssoManager.updateSSOSession(pendingReq, newSSOSessionId, sloInformation); + } catch (EAAFSSOException e) { log.warn("SSO Session information can not be stored -> SSO is not enabled!"); authmanager.performOnlyIDPLogOut(req, resp, pendingReq); -- cgit v1.2.3