Skip to content

Commit 95200e2

Browse files
authored
Merge pull request #216 from rishabjasrotia/issue/204
#204 - Fix issue due to Signature URL validation
2 parents 8c8015f + d94527e commit 95200e2

File tree

4 files changed

+18
-9
lines changed

4 files changed

+18
-9
lines changed

microfrontends/SignDocuments/src/Component/PdfRequestFiles.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ import RenderAllPdfPage from "./component/renderAllPdfPage";
1414
import {
1515
contractDocument,
1616
getBase64FromIMG,
17-
getBase64FromUrl
17+
getBase64FromUrl,
18+
urlValidator
1819
} from "../utils/Utils";
1920
import Loader from "./component/loader";
2021
import HandleError from "./component/HandleError";
@@ -346,7 +347,7 @@ function PdfRequestFiles() {
346347
imgUrlList.map(async (data) => {
347348
//cheking signUrl is defau;t signature url of custom url
348349
let ImgUrl = data.SignUrl;
349-
const checkUrl = ImgUrl.includes("https:");
350+
const checkUrl = urlValidator(ImgUrl);
350351

351352
//if default signature url then convert it in base 64
352353
if (checkUrl) {
@@ -434,7 +435,7 @@ function PdfRequestFiles() {
434435
imgUrlList.map(async (url) => {
435436
let signUrl = url.SignUrl;
436437

437-
const checkUrl = url.SignUrl.includes("https:");
438+
const checkUrl = urlValidator(signUrl);
438439
if (checkUrl) {
439440
signUrl = signUrl + "?get";
440441
}

microfrontends/SignDocuments/src/Component/SignYourselfPdf.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import HandleError from "./component/HandleError";
2424
import Nodata from "./component/Nodata";
2525
import Header from "./component/header";
2626
import RenderPdf from "./component/renderPdf";
27-
import { contractUsers, contactBook } from "../utils/Utils";
27+
import { contractUsers, contactBook, urlValidator } from "../utils/Utils";
2828
import { modalAlign } from "../utils/Utils";
2929
import { $ } from 'select-dom';
3030
//For signYourself inProgress section signer can add sign and complete doc sign.
@@ -446,7 +446,7 @@ function SignYourSelf() {
446446
imgUrlList.map(async (data) => {
447447
let ImgUrl = data.SignUrl;
448448
//cheking signUrl is defau;t signature url of custom url
449-
const checkUrl = ImgUrl.includes("https:");
449+
const checkUrl = urlValidator(ImgUrl);
450450

451451
//if default signature url then convert it in base 64
452452
if (checkUrl) {
@@ -526,7 +526,7 @@ function SignYourSelf() {
526526
imgUrlList.map(async (url) => {
527527
let signUrl = url.SignUrl;
528528

529-
const checkUrl = url.SignUrl.includes("https:");
529+
const checkUrl = urlValidator(signUrl);
530530
if (checkUrl) {
531531
signUrl = signUrl + "?get";
532532
}

microfrontends/SignDocuments/src/Component/recipientSignPdf.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ import {
1616
getBase64FromIMG,
1717
contractUsers,
1818
contactBook,
19-
contractDocument
19+
contractDocument,
20+
urlValidator
2021
} from "../utils/Utils";
2122
import Tour from "reactour";
2223
import Signedby from "./component/signedby";
@@ -446,7 +447,7 @@ function EmbedPdfImage() {
446447
imgUrlList.map(async (data) => {
447448
//cheking signUrl is defau;t signature url of custom url
448449
let ImgUrl = data.SignUrl;
449-
const checkUrl = ImgUrl.includes("https:");
450+
const checkUrl = urlValidator(ImgUrl);
450451

451452
//if default signature url then convert it in base 64
452453
if (checkUrl) {
@@ -524,7 +525,7 @@ function EmbedPdfImage() {
524525
const images = await Promise.all(
525526
imgUrlList.map(async (url) => {
526527
let signUrl = url.SignUrl;
527-
const checkUrl = url.SignUrl.includes("https:");
528+
const checkUrl = urlValidator(signUrl);
528529
if (checkUrl) {
529530
signUrl = signUrl + "?get";
530531
}

microfrontends/SignDocuments/src/utils/Utils.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,13 @@ export const contactBook = async (objectId) => {
301301
return result;
302302
};
303303

304+
// function for validating URLs
305+
export function urlValidator(url) {
306+
try {
307+
const newUrl = new URL(url);
308+
return newUrl.protocol === 'http:' || newUrl.protocol === 'https:';
309+
} catch (err) {
310+
return false;
304311
export const modalAlign = () => {
305312
let modalDialog = $('.modal-dialog').getBoundingClientRect();
306313
let mobileHead = $('.mobileHead').getBoundingClientRect()

0 commit comments

Comments
 (0)