From 022e18a13fa7c0f04796b51df8fc9c565e5769a0 Mon Sep 17 00:00:00 2001 From: Krishna Acondy Date: Tue, 23 Mar 2021 09:10:19 +0000 Subject: [PATCH] chore(*): add support for SASENC passwords --- src/rules/noEncodedPasswords.spec.ts | 11 +++++++++++ src/rules/noEncodedPasswords.ts | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/rules/noEncodedPasswords.spec.ts b/src/rules/noEncodedPasswords.spec.ts index 38c4834..f68c9f1 100644 --- a/src/rules/noEncodedPasswords.spec.ts +++ b/src/rules/noEncodedPasswords.spec.ts @@ -6,6 +6,17 @@ describe('noEncodedPasswords', () => { expect(noEncodedPasswords.test(line, 1)).toEqual([]) }) + it('should return an array with a single diagnostic when the line has a SASENC password', () => { + const line = "%put '{SASENC}'; " + expect(noEncodedPasswords.test(line, 1)).toEqual([ + { + warning: 'Line contains encoded password', + lineNumber: 1, + columnNumber: 7 + } + ]) + }) + it('should return an array with a single diagnostic when the line has an encoded password', () => { const line = "%put '{SAS001}'; " expect(noEncodedPasswords.test(line, 1)).toEqual([ diff --git a/src/rules/noEncodedPasswords.ts b/src/rules/noEncodedPasswords.ts index 7b3b68b..2d1a4f8 100644 --- a/src/rules/noEncodedPasswords.ts +++ b/src/rules/noEncodedPasswords.ts @@ -5,7 +5,7 @@ const name = 'noEncodedPasswords' const description = 'Disallow encoded passwords in SAS code.' const warning = 'Line contains encoded password' const test = (value: string, lineNumber: number) => { - const regex = new RegExp(/{sas\d{2,4}}[^;"'\s]*/, 'gi') + const regex = new RegExp(/{sas(\d{2,4}|enc)}[^;"'\s]*/, 'gi') const matches = value.match(regex) if (!matches || !matches.length) return [] return matches.map((match) => ({