From 02851082661a924adc68230615f61a308705ce2b Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Tue, 23 Apr 2019 15:00:40 +0200 Subject: integrate Spring ModelAndView into EAAF GUI framework --- .../auth/services/ProtocolAuthenticationService.java | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp') diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ProtocolAuthenticationService.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ProtocolAuthenticationService.java index 8b0f2620..4edde029 100644 --- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ProtocolAuthenticationService.java +++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/idp/auth/services/ProtocolAuthenticationService.java @@ -45,7 +45,7 @@ import at.gv.egiz.eaaf.core.api.IStatusMessenger; import at.gv.egiz.eaaf.core.api.data.EAAFConstants; import at.gv.egiz.eaaf.core.api.gui.IGUIBuilderConfiguration; import at.gv.egiz.eaaf.core.api.gui.IGUIBuilderConfigurationFactory; -import at.gv.egiz.eaaf.core.api.gui.IGUIFormBuilder; +import at.gv.egiz.eaaf.core.api.gui.ISpringMVCGUIFormBuilder; import at.gv.egiz.eaaf.core.api.gui.ModifyableGuiBuilderConfiguration; import at.gv.egiz.eaaf.core.api.idp.IAction; import at.gv.egiz.eaaf.core.api.idp.IAuthData; @@ -59,6 +59,7 @@ import at.gv.egiz.eaaf.core.api.idp.slo.SLOInformationInterface; import at.gv.egiz.eaaf.core.api.logging.IRevisionLogger; import at.gv.egiz.eaaf.core.api.logging.IStatisticLogger; import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage; +import at.gv.egiz.eaaf.core.api.utils.IPendingRequestIdGenerationStrategy; import at.gv.egiz.eaaf.core.exceptions.AuthnRequestValidatorException; import at.gv.egiz.eaaf.core.exceptions.EAAFAuthenticationException; import at.gv.egiz.eaaf.core.exceptions.EAAFException; @@ -67,6 +68,7 @@ import at.gv.egiz.eaaf.core.exceptions.GUIBuildException; import at.gv.egiz.eaaf.core.exceptions.InvalidProtocolRequestException; import at.gv.egiz.eaaf.core.exceptions.ProcessExecutionException; import at.gv.egiz.eaaf.core.exceptions.ProtocolNotActiveException; +import at.gv.egiz.eaaf.core.impl.idp.controller.protocols.RequestImpl; import at.gv.egiz.eaaf.core.impl.utils.HTTPUtils; @Service @@ -77,10 +79,11 @@ public class ProtocolAuthenticationService implements IProtocolAuthenticationSer @Autowired(required=true) private ITransactionStorage transactionStorage; @Autowired(required=true) private IAuthenticationManager authmanager; @Autowired(required=true) private IAuthenticationDataBuilder authDataBuilder; - @Autowired(required=true) private IGUIFormBuilder guiBuilder; + @Autowired(required=true) private ISpringMVCGUIFormBuilder guiBuilder; @Autowired(required=true) private IGUIBuilderConfigurationFactory guiConfigFactory; @Autowired(required=true) private IStatusMessenger statusMessager; @Autowired(required=true) private IRequestStorage requestStorage; + @Autowired(required=true) IPendingRequestIdGenerationStrategy pendingReqIdGenerationStrategy; @Autowired(required=false) private ISSOManager ssoManager; @Autowired private IStatisticLogger statisticLogger; @@ -92,9 +95,12 @@ public class ProtocolAuthenticationService implements IProtocolAuthenticationSer @Override public void performAuthentication(final HttpServletRequest req, final HttpServletResponse resp, final IRequest pendingReq) throws IOException, EAAFException { - try { - if (pendingReq.isNeedAuthentication()) { + try { + if (pendingReq.isNeedAuthentication()) { //request needs authentication --> start authentication process ... + + //set pendingRequestId to support asynchrony message-processing + ((RequestImpl)pendingReq).setPendingRequestId(pendingReqIdGenerationStrategy.generateExternalPendingRequestId()); //load Parameters from OnlineApplicationConfiguration final ISPConfiguration oaParam = pendingReq.getServiceProviderConfiguration(); @@ -366,11 +372,11 @@ public class ProtocolAuthenticationService implements IProtocolAuthenticationSer } - private void writeHTMLErrorResponse(final HttpServletRequest req, final HttpServletResponse httpResp, final String msg, final String errorCode, final Exception error) throws IOException, EAAFException { + private void writeHTMLErrorResponse(final HttpServletRequest httpReq, final HttpServletResponse httpResp, final String msg, final String errorCode, final Exception error) throws IOException, EAAFException { try { final IGUIBuilderConfiguration config - = guiConfigFactory.getDefaultErrorGUI(HTTPUtils.extractAuthURLFromRequest(req)); + = guiConfigFactory.getDefaultErrorGUI(HTTPUtils.extractAuthURLFromRequest(httpReq)); // HTTPUtils.extractAuthURLFromRequest(req), // DefaultGUIFormBuilderConfiguration.VIEW_ERRORMESSAGE, @@ -392,7 +398,7 @@ public class ProtocolAuthenticationService implements IProtocolAuthenticationSer - guiBuilder.build(httpResp, config, "Error-Message"); + guiBuilder.build(httpReq, httpResp, config, "Error-Message"); } catch (final GUIBuildException e) { log.warn("Can not build error-message GUI.", e); -- cgit v1.2.3