keycloakify 11.8.50 → 11.8.52

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/bin/375.index.js CHANGED
@@ -582,6 +582,7 @@ const zParsedRealmJson = (() => {
582
582
  accountTheme: lib.z.string().optional(),
583
583
  adminTheme: lib.z.string().optional(),
584
584
  emailTheme: lib.z.string().optional(),
585
+ sslRequired: lib.z.string().optional(),
585
586
  eventsListeners: lib.z.array(lib.z.string()),
586
587
  users: lib.z.array(lib.z.object({
587
588
  id: lib.z.string(),
@@ -885,6 +886,7 @@ function prepareRealmConfig(params) {
885
886
  parsedRealmJson.eventsListeners.push(name);
886
887
  parsedRealmJson.eventsListeners.sort();
887
888
  }
889
+ parsedRealmJson.sslRequired = "none";
888
890
  return {
889
891
  realmName: parsedRealmJson.realm,
890
892
  clientName: clientId,
@@ -1857,6 +1859,7 @@ async function command(params) {
1857
1859
  ...(keycloakMajorVersionNumber <= 20
1858
1860
  ? [`-e${SPACE_PLACEHOLDER}JAVA_OPTS=-Dkeycloak.profile=preview`]
1859
1861
  : []),
1862
+ `-e${SPACE_PLACEHOLDER}KC_HOSTNAME_STRICT_HTTPS=false`,
1860
1863
  ...[
1861
1864
  ...buildContext.themeNames,
1862
1865
  ...(external_fs_.existsSync((0,external_path_.join)(buildContext.keycloakifyBuildDirPath, "theme", "account-v1"))
@@ -5,6 +5,7 @@ export type ParsedRealmJson = {
5
5
  accountTheme?: string;
6
6
  adminTheme?: string;
7
7
  emailTheme?: string;
8
+ sslRequired?: string;
8
9
  eventsListeners: string[];
9
10
  users: {
10
11
  id: string;
@@ -5,10 +5,24 @@ export default function FrontchannelLogout(props) {
5
5
  const { logout } = kcContext;
6
6
  const { msg, msgStr } = i18n;
7
7
  useEffect(() => {
8
- if (logout.logoutRedirectUri) {
9
- window.location.replace(logout.logoutRedirectUri);
8
+ const { logoutRedirectUri } = logout;
9
+ if (logoutRedirectUri === undefined) {
10
+ return;
10
11
  }
12
+ if (document.readyState === "complete") {
13
+ window.location.replace(logoutRedirectUri);
14
+ return;
15
+ }
16
+ const onReadystatechange = () => {
17
+ if (document.readyState === "complete") {
18
+ window.location.replace(logoutRedirectUri);
19
+ }
20
+ };
21
+ document.addEventListener("readystatechange", onReadystatechange);
22
+ return () => {
23
+ document.removeEventListener("readystatechange", onReadystatechange);
24
+ };
11
25
  }, []);
12
- return (_jsxs(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, documentTitle: msgStr("frontchannel-logout.title"), headerNode: msg("frontchannel-logout.title") }, { children: [_jsx("p", { children: msg("frontchannel-logout.message") }), _jsx("ul", { children: logout.clients.map(client => (_jsxs("li", { children: [client.name, _jsx("iframe", { src: client.frontChannelLogoutUrl, style: { display: "none" } })] }, client.name))) }), logout.logoutRedirectUri && (_jsx("a", Object.assign({ id: "continue", className: "btn btn-primary", href: logout.logoutRedirectUri }, { children: msg("doContinue") })))] })));
26
+ return (_jsxs(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, documentTitle: msgStr("frontchannel-logout.title"), headerNode: msg("frontchannel-logout.title") }, { children: [_jsx("p", { children: msg("frontchannel-logout.message") }), _jsx("ul", { children: logout.clients.map(client => (_jsxs("li", { children: [client.name, _jsx("iframe", { src: client.frontChannelLogoutUrl, style: { display: "none" } })] }, client.name))) }), logout.logoutRedirectUri !== undefined && (_jsx("a", Object.assign({ id: "continue", className: "btn btn-primary", href: logout.logoutRedirectUri }, { children: msg("doContinue") })))] })));
13
27
  }
14
28
  //# sourceMappingURL=FrontchannelLogout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FrontchannelLogout.js","sourceRoot":"","sources":["../../src/login/pages/FrontchannelLogout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlC,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAiF;IACxH,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE7B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,MAAM,CAAC,iBAAiB,EAAE;YAC1B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SACrD;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,MAAC,QAAQ,kBACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,CAAC,2BAA2B,CAAC,EAClD,UAAU,EAAE,GAAG,CAAC,2BAA2B,CAAC,iBAE5C,sBAAI,GAAG,CAAC,6BAA6B,CAAC,GAAK,EAC3C,uBACK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAC1B,yBACK,MAAM,CAAC,IAAI,EACZ,iBAAQ,GAAG,EAAE,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAI,KAFpE,MAAM,CAAC,IAAI,CAGf,CACR,CAAC,GACD,EACJ,MAAM,CAAC,iBAAiB,IAAI,CACzB,0BAAG,EAAE,EAAC,UAAU,EAAC,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAE,MAAM,CAAC,iBAAiB,gBACtE,GAAG,CAAC,YAAY,CAAC,IAClB,CACP,KACM,CACd,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"FrontchannelLogout.js","sourceRoot":"","sources":["../../src/login/pages/FrontchannelLogout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlC,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAiF;IACxH,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE7B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACX,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;QAErC,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACjC,OAAO;SACV;QAED,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;YACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC3C,OAAO;SACV;QAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;YAC5B,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;gBACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;aAC9C;QACL,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QAElE,OAAO,GAAG,EAAE;YACR,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QACzE,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,MAAC,QAAQ,kBACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,CAAC,2BAA2B,CAAC,EAClD,UAAU,EAAE,GAAG,CAAC,2BAA2B,CAAC,iBAE5C,sBAAI,GAAG,CAAC,6BAA6B,CAAC,GAAK,EAC3C,uBACK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAC1B,yBACK,MAAM,CAAC,IAAI,EACZ,iBAAQ,GAAG,EAAE,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAI,KAFpE,MAAM,CAAC,IAAI,CAGf,CACR,CAAC,GACD,EACJ,MAAM,CAAC,iBAAiB,KAAK,SAAS,IAAI,CACvC,0BAAG,EAAE,EAAC,UAAU,EAAC,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAE,MAAM,CAAC,iBAAiB,gBACtE,GAAG,CAAC,YAAY,CAAC,IAClB,CACP,KACM,CACd,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keycloakify",
3
- "version": "11.8.50",
3
+ "version": "11.8.52",
4
4
  "description": "Framework to create custom Keycloak UIs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,6 +8,7 @@ export type ParsedRealmJson = {
8
8
  accountTheme?: string;
9
9
  adminTheme?: string;
10
10
  emailTheme?: string;
11
+ sslRequired?: string;
11
12
  eventsListeners: string[];
12
13
  users: {
13
14
  id: string;
@@ -57,6 +58,7 @@ export const zParsedRealmJson = (() => {
57
58
  accountTheme: z.string().optional(),
58
59
  adminTheme: z.string().optional(),
59
60
  emailTheme: z.string().optional(),
61
+ sslRequired: z.string().optional(),
60
62
  eventsListeners: z.array(z.string()),
61
63
  users: z.array(
62
64
  z.object({
@@ -45,6 +45,8 @@ export function prepareRealmConfig(params: {
45
45
  parsedRealmJson.eventsListeners.sort();
46
46
  }
47
47
 
48
+ parsedRealmJson.sslRequired = "none";
49
+
48
50
  return {
49
51
  realmName: parsedRealmJson.realm,
50
52
  clientName: clientId,
@@ -537,6 +537,7 @@ export async function command(params: {
537
537
  ...(keycloakMajorVersionNumber <= 20
538
538
  ? [`-e${SPACE_PLACEHOLDER}JAVA_OPTS=-Dkeycloak.profile=preview`]
539
539
  : []),
540
+ `-e${SPACE_PLACEHOLDER}KC_HOSTNAME_STRICT_HTTPS=false`,
540
541
  ...[
541
542
  ...buildContext.themeNames,
542
543
  ...(fs.existsSync(
@@ -11,9 +11,28 @@ export default function FrontchannelLogout(props: PageProps<Extract<KcContext, {
11
11
  const { msg, msgStr } = i18n;
12
12
 
13
13
  useEffect(() => {
14
- if (logout.logoutRedirectUri) {
15
- window.location.replace(logout.logoutRedirectUri);
14
+ const { logoutRedirectUri } = logout;
15
+
16
+ if (logoutRedirectUri === undefined) {
17
+ return;
18
+ }
19
+
20
+ if (document.readyState === "complete") {
21
+ window.location.replace(logoutRedirectUri);
22
+ return;
16
23
  }
24
+
25
+ const onReadystatechange = () => {
26
+ if (document.readyState === "complete") {
27
+ window.location.replace(logoutRedirectUri);
28
+ }
29
+ };
30
+
31
+ document.addEventListener("readystatechange", onReadystatechange);
32
+
33
+ return () => {
34
+ document.removeEventListener("readystatechange", onReadystatechange);
35
+ };
17
36
  }, []);
18
37
 
19
38
  return (
@@ -34,7 +53,7 @@ export default function FrontchannelLogout(props: PageProps<Extract<KcContext, {
34
53
  </li>
35
54
  ))}
36
55
  </ul>
37
- {logout.logoutRedirectUri && (
56
+ {logout.logoutRedirectUri !== undefined && (
38
57
  <a id="continue" className="btn btn-primary" href={logout.logoutRedirectUri}>
39
58
  {msg("doContinue")}
40
59
  </a>