diff --git a/src/main/java/net/gepafin/tendermanagement/config/SamlFailureHandler.java b/src/main/java/net/gepafin/tendermanagement/config/SamlFailureHandler.java index d2337ee9..52b30dbd 100644 --- a/src/main/java/net/gepafin/tendermanagement/config/SamlFailureHandler.java +++ b/src/main/java/net/gepafin/tendermanagement/config/SamlFailureHandler.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; + import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,9 +17,11 @@ import org.springframework.stereotype.Component; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import net.gepafin.tendermanagement.constants.GepafinConstant; +import net.gepafin.tendermanagement.entities.HubEntity; import net.gepafin.tendermanagement.entities.SamlResponseEntity; import net.gepafin.tendermanagement.enums.SamlResponseStatusEnum; import net.gepafin.tendermanagement.repositories.SamlResponseRepository; +import net.gepafin.tendermanagement.service.HubService; import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException; import net.gepafin.tendermanagement.web.rest.api.errors.Status; @@ -33,12 +36,16 @@ public class SamlFailureHandler implements AuthenticationFailureHandler { @Autowired private SamlResponseRepository samlResponseRepository; + @Autowired + private HubService hubService; + @Override public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException { try { logger.error("SAML login failed: " + exception.getMessage()); - String inResponseTo = extractInResponseTo(feBaseUrl); + String inResponseTo = extractInResponseTo(exception.getMessage()); + if (Boolean.FALSE.equals(StringUtils.isEmpty(inResponseTo))) { SamlResponseEntity samlResponseLogEntity = samlResponseRepository .findByInResponseToAndStatus(inResponseTo, SamlResponseStatusEnum.INITIATED.getValue()) @@ -46,6 +53,10 @@ public class SamlFailureHandler implements AuthenticationFailureHandler { Translator.toLocale(GepafinConstant.INVALID_REQUEST))); samlResponseLogEntity.setStatus(SamlResponseStatusEnum.FAILED.getValue()); samlResponseRepository.save(samlResponseLogEntity); + HubEntity hub = hubService.getHubByUuid(samlResponseLogEntity.getHubUuid()); + if (Boolean.FALSE.equals(StringUtils.isEmpty(hub.getDomainName()))) { + feBaseUrl = hub.getDomainName(); + } } response.sendRedirect(feBaseUrl + "/login"); } catch (Exception e) { diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/UserApi.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/UserApi.java index c7b8e530..057d5d37 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/UserApi.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/UserApi.java @@ -98,7 +98,7 @@ public interface UserApi { return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); } - @Operation(summary = "Api to login user", + @Operation(summary = "Api to login user Changed the URL to identify the deployment issue", responses = { @ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "400", description = "Bad Request"),