diff options
| -rw-r--r-- | eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java | 82 | 
1 files changed, 37 insertions, 45 deletions
| diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java index 9e8ff9ae..ffd92a50 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/tasks/GenerateAuthnRequestTask.java @@ -19,22 +19,10 @@   * 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.asitplus.eidas.specific.modules.auth.eidas.v2.tasks; -import java.util.UUID; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.stereotype.Component; -import org.springframework.web.util.UriComponentsBuilder; -  import at.asitplus.eidas.specific.connector.MsConnectorEventCodes;  import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;  import at.asitplus.eidas.specific.connector.gui.StaticGuiBuilderConfiguration; @@ -57,48 +45,59 @@ import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;  import eu.eidas.specificcommunication.exception.SpecificCommunicationException;  import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;  import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; +import org.springframework.web.util.UriComponentsBuilder; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.UUID;  /**   * Authentication-process task that generates the Authn. Request to eIDAS Node.   *   * @author tlenz - *   */  @Slf4j  @Component("GenerateAuthnRequestTask")  public class GenerateAuthnRequestTask extends AbstractAuthServletTask { +  @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")    @Autowired    IConfiguration basicConfig; +    @Autowired    ApplicationContext context; + +  @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")    @Autowired    ITransactionStorage transactionStore; + +  @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")    @Autowired    ISpringMvcGuiFormBuilder guiBuilder; +    @Autowired    ICcSpecificEidProcessingService ccSpecificProcessing;    @Override -  public void execute(ExecutionContext executionContext, -      HttpServletRequest request, HttpServletResponse response) +  public void execute(ExecutionContext executionContext, HttpServletRequest request, HttpServletResponse response)        throws TaskExecutionException { -      try {        // get target, environment and validate citizen countryCode -      final String citizenCountryCode = (String) executionContext.get( -          MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY); -      final String environment = (String) executionContext.get( -          MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT); +      final String citizenCountryCode = (String) executionContext.get(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY); +      final String environment = (String) executionContext.get(MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT);        if (StringUtils.isEmpty(citizenCountryCode)) {          // illegal state; task should not have been executed without a selected country -        throw new EidasSAuthenticationException("eidas.03", new Object[] { "" }); - +        throw new EidasSAuthenticationException("eidas.03", new Object[]{""});        }        // TODO: maybe add countryCode validation before request ref. impl. eIDAS node -      log.info("Request eIDAS auth. for citizen of country: " + citizenCountryCode); +      log.info("Request eIDAS auth. for citizen of country: {}", citizenCountryCode);        revisionsLogger.logEvent(pendingReq, MsConnectorEventCodes.COUNTRY_SELECTED, citizenCountryCode);        // build eIDAS AuthnRequest @@ -112,17 +111,17 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {        authnRequestBuilder.citizenCountryCode(citizenCountryCode);        //set Issuer -      final String issur = basicConfig.getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_NODE_ENTITYID); -      if (StringUtils.isEmpty(issur)) { +      final String issuer = basicConfig.getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_NODE_ENTITYID); +      if (StringUtils.isEmpty(issuer)) {          log.error("Found NO 'eIDAS node issuer' in configuration. Authentication NOT possible!");          throw new EaafConfigurationException("config.27", -            new Object[] { "Application config containts NO " + Constants.CONIG_PROPS_EIDAS_NODE_ENTITYID }); - +            new Object[]{"Application config containts NO " + Constants.CONIG_PROPS_EIDAS_NODE_ENTITYID});        } -      authnRequestBuilder.issuer(issur); +      authnRequestBuilder.issuer(issuer); -      // Add country-specific informations into eIDAS request + +      // Add country-specific information into eIDAS request        ccSpecificProcessing.preProcess(citizenCountryCode, pendingReq, authnRequestBuilder);        // build request @@ -149,13 +148,13 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {        if (StringUtils.isEmpty(forwardUrl)) {          log.warn("NO ForwardURL defined in configuration. Can NOT forward to eIDAS node! Process stops"); -        throw new EaafConfigurationException("config.08", new Object[] { +        throw new EaafConfigurationException("config.08", new Object[]{              environment == null ? Constants.CONIG_PROPS_EIDAS_NODE_FORWARD_URL                  : Constants.CONIG_PROPS_EIDAS_NODE_FORWARD_URL + "." + environment          });        } -      log.debug("ForwardURL: " + forwardUrl + " selected to forward eIDAS request"); +      log.debug("ForwardURL: {} selected to forward eIDAS request", forwardUrl);        if (basicConfig.getBasicConfiguration(            Constants.CONIG_PROPS_EIDAS_NODE_FORWARD_METHOD, @@ -177,10 +176,8 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {              resourceLoader);          config.putCustomParameter(null, Constants.TEMPLATE_POST_FORWARD_ENDPOINT, forwardUrl); -        config.putCustomParameter(null, Constants.TEMPLATE_POST_FORWARD_TOKEN_NAME, -            EidasParameterKeys.TOKEN.toString()); -        config.putCustomParameter(null, Constants.TEMPLATE_POST_FORWARD_TOKEN_VALUE, -            tokenBase64); +        config.putCustomParameter(null, Constants.TEMPLATE_POST_FORWARD_TOKEN_NAME, EidasParameterKeys.TOKEN.toString()); +        config.putCustomParameter(null, Constants.TEMPLATE_POST_FORWARD_TOKEN_VALUE, tokenBase64);          guiBuilder.build(request, response, config, "Forward to eIDASNode form"); @@ -204,14 +201,14 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {     * <br>     * <b>Info: </b> This method is needed, because eIDAS Ref. Impl only supports     * one countrycode on each instance. In consequence, more than one eIDAS Ref. -   * Impl nodes are required to support producation, testing, or QS stages for one +   * Impl nodes are required to support production, testing, or QS stages for one     * country by using one ms-specific eIDAS connector     *     * @param environment Environment selector from CountrySlection page -   * @return +   * @return the URL from the configuration     */    private String selectedForwardUrlForEnvironment(String environment) { -    log.trace("Starting endpoint selection process for environment: " + environment + " ... "); +    log.trace("Starting endpoint selection process for environment: {} ... ", environment);      if (environment.equalsIgnoreCase(MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_PRODUCTION)) {        return basicConfig.getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_NODE_FORWARD_URL);      } else if (environment.equalsIgnoreCase(MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_QS)) { @@ -226,10 +223,8 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {        return basicConfig.getBasicConfiguration(Constants.CONIG_PROPS_EIDAS_NODE_FORWARD_URL            + "." + MsEidasNodeConstants.REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_DEVELOPMENT);      } - -    log.info("Environment selector: " + environment + " is not supported"); +    log.info("Environment selector: {} is not supported", environment);      return null; -    }    private BinaryLightToken putRequestInCommunicationCache(ILightRequest lightRequest) @@ -239,13 +234,10 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {        final SpecificCommunicationService springManagedSpecificConnectorCommunicationService =            (SpecificCommunicationService) context.getBean(                SpecificCommunicationDefinitionBeanNames.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE.toString()); -        binaryLightToken = springManagedSpecificConnectorCommunicationService.putRequest(lightRequest); -      } catch (final SpecificCommunicationException e) {        log.error("Unable to process specific request");        throw new ServletException(e); -      }      return binaryLightToken; | 
