diff --git a/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js b/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js index bfcfd7cb3..214999207 100644 --- a/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js +++ b/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js @@ -14,7 +14,8 @@ import RenderAllPdfPage from "./component/renderAllPdfPage"; import { contractDocument, getBase64FromIMG, - getBase64FromUrl + getBase64FromUrl, + urlValidator } from "../utils/Utils"; import Loader from "./component/loader"; import HandleError from "./component/HandleError"; @@ -346,7 +347,7 @@ function PdfRequestFiles() { imgUrlList.map(async (data) => { //cheking signUrl is defau;t signature url of custom url let ImgUrl = data.SignUrl; - const checkUrl = ImgUrl.includes("https:"); + const checkUrl = urlValidator(ImgUrl); //if default signature url then convert it in base 64 if (checkUrl) { @@ -434,7 +435,7 @@ function PdfRequestFiles() { imgUrlList.map(async (url) => { let signUrl = url.SignUrl; - const checkUrl = url.SignUrl.includes("https:"); + const checkUrl = urlValidator(signUrl); if (checkUrl) { signUrl = signUrl + "?get"; } diff --git a/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js b/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js index 5638cfae3..ab035b36b 100644 --- a/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js +++ b/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js @@ -24,7 +24,7 @@ import HandleError from "./component/HandleError"; import Nodata from "./component/Nodata"; import Header from "./component/header"; import RenderPdf from "./component/renderPdf"; -import { contractUsers, contactBook } from "../utils/Utils"; +import { contractUsers, contactBook, urlValidator } from "../utils/Utils"; import { modalAlign } from "../utils/Utils"; import { $ } from 'select-dom'; //For signYourself inProgress section signer can add sign and complete doc sign. @@ -446,7 +446,7 @@ function SignYourSelf() { imgUrlList.map(async (data) => { let ImgUrl = data.SignUrl; //cheking signUrl is defau;t signature url of custom url - const checkUrl = ImgUrl.includes("https:"); + const checkUrl = urlValidator(ImgUrl); //if default signature url then convert it in base 64 if (checkUrl) { @@ -526,7 +526,7 @@ function SignYourSelf() { imgUrlList.map(async (url) => { let signUrl = url.SignUrl; - const checkUrl = url.SignUrl.includes("https:"); + const checkUrl = urlValidator(signUrl); if (checkUrl) { signUrl = signUrl + "?get"; } diff --git a/microfrontends/SignDocuments/src/Component/recipientSignPdf.js b/microfrontends/SignDocuments/src/Component/recipientSignPdf.js index fe43add21..b54981ee0 100644 --- a/microfrontends/SignDocuments/src/Component/recipientSignPdf.js +++ b/microfrontends/SignDocuments/src/Component/recipientSignPdf.js @@ -16,7 +16,8 @@ import { getBase64FromIMG, contractUsers, contactBook, - contractDocument + contractDocument, + urlValidator } from "../utils/Utils"; import Tour from "reactour"; import Signedby from "./component/signedby"; @@ -446,7 +447,7 @@ function EmbedPdfImage() { imgUrlList.map(async (data) => { //cheking signUrl is defau;t signature url of custom url let ImgUrl = data.SignUrl; - const checkUrl = ImgUrl.includes("https:"); + const checkUrl = urlValidator(ImgUrl); //if default signature url then convert it in base 64 if (checkUrl) { @@ -524,7 +525,7 @@ function EmbedPdfImage() { const images = await Promise.all( imgUrlList.map(async (url) => { let signUrl = url.SignUrl; - const checkUrl = url.SignUrl.includes("https:"); + const checkUrl = urlValidator(signUrl); if (checkUrl) { signUrl = signUrl + "?get"; } diff --git a/microfrontends/SignDocuments/src/utils/Utils.js b/microfrontends/SignDocuments/src/utils/Utils.js index a02d3abcd..8dd2e6827 100644 --- a/microfrontends/SignDocuments/src/utils/Utils.js +++ b/microfrontends/SignDocuments/src/utils/Utils.js @@ -301,6 +301,13 @@ export const contactBook = async (objectId) => { return result; }; +// function for validating URLs +export function urlValidator(url) { + try { + const newUrl = new URL(url); + return newUrl.protocol === 'http:' || newUrl.protocol === 'https:'; + } catch (err) { + return false; export const modalAlign = () => { let modalDialog = $('.modal-dialog').getBoundingClientRect(); let mobileHead = $('.mobileHead').getBoundingClientRect()