Skip to content

Commit 3e92605

Browse files
author
igurjar
committed
Fix : preserve aem assets uuid. Lint error fix
1 parent 21d3a0f commit 3e92605

File tree

3 files changed

+22
-25
lines changed

3 files changed

+22
-25
lines changed

src/privacy.mjs

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,16 @@ const filters = {
3333
// When we find this, we replace the string with a generic placeholder.
3434
jwt: withInputValidation((str, replaceWith) => str.replace(/eyJ[a-zA-Z0-9_-]+\.eyJ[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+/g, replaceWith)),
3535

36-
uuid: withInputValidation((str, replaceWith) => {
37-
// Split by segments and process each
38-
return str.split('/').map((segment) => {
39-
// Preserve segments that start with dm-aid-- or urn:aaid:aem: (encoded or unencoded)
40-
if (segment.startsWith('dm-aid--') ||
41-
segment.startsWith('urn:aaid:aem:') ||
42-
segment.startsWith('urn%3Aaaid%3Aaem%3A')) {
43-
return segment;
44-
}
45-
// Mask UUIDs in all other segments
46-
return segment.replace(/([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|([0-9a-fA-F]{32})/g, replaceWith);
47-
}).join('/');
48-
}),
36+
uuid: withInputValidation((str, replaceWith) => str.split('/').map((segment) => {
37+
// Preserve segments that start with dm-aid-- or urn:aaid:aem: (encoded or unencoded)
38+
if (segment.startsWith('dm-aid--')
39+
|| segment.startsWith('urn:aaid:aem:')
40+
|| segment.startsWith('urn%3Aaaid%3Aaem%3A')) {
41+
return segment;
42+
}
43+
// Mask UUIDs in all other segments
44+
return segment.replace(/([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|([0-9a-fA-F]{32})/g, replaceWith);
45+
}).join('/')),
4946

5047
email: withInputValidation((str, replaceWith) => str.replace(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g, replaceWith)),
5148

test/privacy.test.mjs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,22 +217,22 @@ describe('Privacy Functions', () => {
217217
[
218218
// Test 1: AEM Assets with URN identifier (base path)
219219
['/adobe/assets/urn:aaid:aem:12345678-1234-1234-1234-123456789abc', '/adobe/assets/urn:aaid:aem:12345678-1234-1234-1234-123456789abc'],
220-
220+
221221
// Test 2: AEM Assets with URN identifier (with subpath)
222222
['/adobe/assets/urn:aaid:aem:12345678-1234-1234-1234-123456789abc/metadata', '/adobe/assets/urn:aaid:aem:12345678-1234-1234-1234-123456789abc/metadata'],
223-
223+
224224
// Test 3: Dynamic Media deliver with dm-aid
225225
['/adobe/dynamicmedia/deliver/dm-aid--550e8400-e29b-41d4-a716-446655440000/image.jpg', '/adobe/dynamicmedia/deliver/dm-aid--550e8400-e29b-41d4-a716-446655440000/image.jpg'],
226-
226+
227227
// Test 4: AEM Assets path with regular UUID (should be masked)
228228
['/adobe/assets/550e8400-e29b-41d4-a716-446655440000/metadata', '/adobe/assets/<uuid>/metadata'],
229-
229+
230230
// Test 5: Non-AEM path with UUID (should be masked)
231231
['/user/profile/550e8400-e29b-41d4-a716-446655440000/data', '/user/profile/<uuid>/data'],
232-
232+
233233
// Test 6: URL-encoded URN identifier (should be preserved)
234234
['/adobe/assets/urn%3Aaaid%3Aaem%3A12345678-1234-1234-1234-123456789abc', '/adobe/assets/urn%3Aaaid%3Aaem%3A12345678-1234-1234-1234-123456789abc'],
235-
235+
236236
// Test 7: URL-encoded URN identifier with subpath (should be preserved)
237237
['/adobe/assets/urn%3Aaaid%3Aaem%3A12345678-1234-1234-1234-123456789abc/metadata', '/adobe/assets/urn%3Aaaid%3Aaem%3A12345678-1234-1234-1234-123456789abc/metadata'],
238238
].forEach(([input, expected]) => {

test/utils.test.mjs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -173,22 +173,22 @@ Pellentesque viverra id magna vel varius. Lorem ipsum dolor sit amet, consectetu
173173
// AEM Asset identifiers - should be preserved
174174
// Test 1: AEM Assets with URN identifier (base path)
175175
assert.equal(cleanurl('https://assets.adobe.com/adobe/assets/urn:aaid:aem:12345678-1234-1234-1234-123456789abc'), 'https://assets.adobe.com/adobe/assets/urn:aaid:aem:12345678-1234-1234-1234-123456789abc');
176-
176+
177177
// Test 2: AEM Assets with URN identifier (with subpath, query and fragment stripped)
178178
assert.equal(cleanurl('https://assets.adobe.com/adobe/assets/urn:aaid:aem:12345678-1234-1234-1234-123456789abc/metadata?version=1#fragment'), 'https://assets.adobe.com/adobe/assets/urn:aaid:aem:12345678-1234-1234-1234-123456789abc/metadata');
179-
179+
180180
// Test 3: Dynamic Media deliver with dm-aid
181181
assert.equal(cleanurl('https://media.adobe.com/adobe/dynamicmedia/deliver/dm-aid--550e8400-e29b-41d4-a716-446655440000/image.jpg'), 'https://media.adobe.com/adobe/dynamicmedia/deliver/dm-aid--550e8400-e29b-41d4-a716-446655440000/image.jpg');
182-
182+
183183
// Test 4: AEM Assets path with regular UUID (should be masked)
184184
assert.equal(cleanurl('https://assets.adobe.com/adobe/assets/550e8400-e29b-41d4-a716-446655440000/metadata'), 'https://assets.adobe.com/adobe/assets/%3Cuuid%3E/metadata');
185-
185+
186186
// Test 5: Non-AEM path with UUID (should be masked)
187187
assert.equal(cleanurl('https://example.com/user/profile/550e8400-e29b-41d4-a716-446655440000/data'), 'https://example.com/user/profile/%3Cuuid%3E/data');
188-
188+
189189
// Test 6: URL-encoded URN identifier (should be preserved)
190190
assert.equal(cleanurl('https://assets.adobe.com/adobe/assets/urn%3Aaaid%3Aaem%3A12345678-1234-1234-1234-123456789abc'), 'https://assets.adobe.com/adobe/assets/urn%3Aaaid%3Aaem%3A12345678-1234-1234-1234-123456789abc');
191-
191+
192192
// Test 7: URL-encoded URN identifier with subpath (should be preserved)
193193
assert.equal(cleanurl('https://assets.adobe.com/adobe/assets/urn%3Aaaid%3Aaem%3A12345678-1234-1234-1234-123456789abc/metadata'), 'https://assets.adobe.com/adobe/assets/urn%3Aaaid%3Aaem%3A12345678-1234-1234-1234-123456789abc/metadata');
194194

0 commit comments

Comments
 (0)