keycloakify 11.15.11 → 11.15.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -149,6 +149,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|
|
149
149
|
<td align="center" valign="top" width="14.28%"><a href="https://www.oussemasahbeni.com"><img src="https://avatars.githubusercontent.com/u/104161749?v=4?s=100" width="100px;" alt="Oussema Sahbeni"/><br /><sub><b>Oussema Sahbeni</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=Oussemasahbeni" title="Code">💻</a></td>
|
|
150
150
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/githrdw"><img src="https://avatars.githubusercontent.com/u/1455140?v=4?s=100" width="100px;" alt="githrdw"/><br /><sub><b>githrdw</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=githrdw" title="Code">💻</a></td>
|
|
151
151
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/whawker"><img src="https://avatars.githubusercontent.com/u/2003804?v=4?s=100" width="100px;" alt="Will Hawker"/><br /><sub><b>Will Hawker</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=whawker" title="Code">💻</a></td>
|
|
152
|
+
<td align="center" valign="top" width="14.28%"><a href="http://remming.fi"><img src="https://avatars.githubusercontent.com/u/7122178?v=4?s=100" width="100px;" alt="Maximilian Remming"/><br /><sub><b>Maximilian Remming</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=xremming" title="Code">💻</a></td>
|
|
152
153
|
</tr>
|
|
153
154
|
</tbody>
|
|
154
155
|
</table>
|
|
@@ -87,6 +87,7 @@ export class HtmlPolicyBuilder {
|
|
|
87
87
|
this.allowedProtocols.add("http");
|
|
88
88
|
this.allowedProtocols.add("https");
|
|
89
89
|
this.allowedProtocols.add("mailto");
|
|
90
|
+
this.allowedProtocols.add("tel");
|
|
90
91
|
return this;
|
|
91
92
|
}
|
|
92
93
|
apply(html) {
|
|
@@ -206,8 +207,27 @@ export class HtmlPolicyBuilder {
|
|
|
206
207
|
return Array.from(allowedAttributes);
|
|
207
208
|
}
|
|
208
209
|
getAllowedUriRegexp() {
|
|
209
|
-
|
|
210
|
-
|
|
210
|
+
// Protocols like `mailto:` and `tel:` use a `scheme:opaque` form without
|
|
211
|
+
// the `//` authority, so they must be matched separately from network
|
|
212
|
+
// protocols such as `http://` and `https://`.
|
|
213
|
+
const schemeOnlyProtocols = new Set(["mailto", "tel"]);
|
|
214
|
+
const allowed = Array.from(this.allowedProtocols);
|
|
215
|
+
const withAuthority = allowed.filter(p => !schemeOnlyProtocols.has(p));
|
|
216
|
+
const schemeOnly = allowed.filter(p => schemeOnlyProtocols.has(p));
|
|
217
|
+
const alternatives = [];
|
|
218
|
+
if (withAuthority.length) {
|
|
219
|
+
alternatives.push(`(?:${withAuthority.join("|")})://`);
|
|
220
|
+
}
|
|
221
|
+
if (schemeOnly.length) {
|
|
222
|
+
alternatives.push(`(?:${schemeOnly.join("|")}):`);
|
|
223
|
+
}
|
|
224
|
+
if (alternatives.length === 0) {
|
|
225
|
+
// With no allowed protocols an empty alternation would match the
|
|
226
|
+
// start of every string, permissively allowing all URIs, so match
|
|
227
|
+
// nothing instead.
|
|
228
|
+
return new RegExp("^$");
|
|
229
|
+
}
|
|
230
|
+
return new RegExp(`^(?:${alternatives.join("|")})`, "i");
|
|
211
231
|
}
|
|
212
232
|
}
|
|
213
233
|
//# sourceMappingURL=HtmlPolicyBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlPolicyBuilder.js","sourceRoot":"","sources":["../../src/lib/kcSanitize/HtmlPolicyBuilder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HtmlPolicyBuilder.js","sourceRoot":"","sources":["../../src/lib/kcSanitize/HtmlPolicyBuilder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -112,6 +112,7 @@ export class HtmlPolicyBuilder {
|
|
|
112
112
|
this.allowedProtocols.add("http");
|
|
113
113
|
this.allowedProtocols.add("https");
|
|
114
114
|
this.allowedProtocols.add("mailto");
|
|
115
|
+
this.allowedProtocols.add("tel");
|
|
115
116
|
return this;
|
|
116
117
|
}
|
|
117
118
|
|
|
@@ -251,7 +252,26 @@ export class HtmlPolicyBuilder {
|
|
|
251
252
|
}
|
|
252
253
|
|
|
253
254
|
private getAllowedUriRegexp(): RegExp {
|
|
254
|
-
|
|
255
|
-
|
|
255
|
+
// Protocols like `mailto:` and `tel:` use a `scheme:opaque` form without
|
|
256
|
+
// the `//` authority, so they must be matched separately from network
|
|
257
|
+
// protocols such as `http://` and `https://`.
|
|
258
|
+
const schemeOnlyProtocols = new Set(["mailto", "tel"]);
|
|
259
|
+
const allowed = Array.from(this.allowedProtocols);
|
|
260
|
+
const withAuthority = allowed.filter(p => !schemeOnlyProtocols.has(p));
|
|
261
|
+
const schemeOnly = allowed.filter(p => schemeOnlyProtocols.has(p));
|
|
262
|
+
const alternatives: string[] = [];
|
|
263
|
+
if (withAuthority.length) {
|
|
264
|
+
alternatives.push(`(?:${withAuthority.join("|")})://`);
|
|
265
|
+
}
|
|
266
|
+
if (schemeOnly.length) {
|
|
267
|
+
alternatives.push(`(?:${schemeOnly.join("|")}):`);
|
|
268
|
+
}
|
|
269
|
+
if (alternatives.length === 0) {
|
|
270
|
+
// With no allowed protocols an empty alternation would match the
|
|
271
|
+
// start of every string, permissively allowing all URIs, so match
|
|
272
|
+
// nothing instead.
|
|
273
|
+
return new RegExp("^$");
|
|
274
|
+
}
|
|
275
|
+
return new RegExp(`^(?:${alternatives.join("|")})`, "i");
|
|
256
276
|
}
|
|
257
277
|
}
|