Skip to content

Commit 23ce2bb

Browse files
authored
Allow logout redirect URl to be configurable (#5199)
* Allow logout redirect URl to be configurable * Change the default value of the logout URL * Fix linting error * Revert createLink change
1 parent 801cb3a commit 23ce2bb

File tree

8 files changed

+28
-7
lines changed

8 files changed

+28
-7
lines changed

app/src/main/java/io/apicurio/registry/rest/v3/SystemResourceImpl.java

+3
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ private UserInterfaceConfigAuth uiAuthConfig() {
114114
options.put("url", uiConfig.authOidcUrl);
115115
options.put("redirectUri", uiConfig.authOidcRedirectUri);
116116
options.put("clientId", uiConfig.authOidcClientId);
117+
if (!"f5".equals(uiConfig.authOidcLogoutUrl)) {
118+
options.put("logoutUrl", uiConfig.authOidcLogoutUrl);
119+
}
117120
rval.setOptions(options);
118121
}
119122
return rval;

app/src/main/java/io/apicurio/registry/ui/UserInterfaceConfigProperties.java

+3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public class UserInterfaceConfigProperties {
2525
@ConfigProperty(name = "apicurio.ui.auth.oidc.client-id", defaultValue = "apicurio-registry-ui")
2626
@Info(category = "ui", description = "The OIDC clientId", availableSince = "3.0.0")
2727
public String authOidcClientId;
28+
@ConfigProperty(name = "apicurio.ui.auth.oidc.logout-url", defaultValue = "f5")
29+
@Info(category = "ui", description = "The OIDC logout URL", availableSince = "3.0.0")
30+
public String authOidcLogoutUrl;
2831

2932
@ConfigProperty(name = "apicurio.ui.features.read-only.enabled", defaultValue = "false")
3033
@Info(category = "ui", description = "Enabled to set the UI to read-only mode", availableSince = "3.0.0")

docs/modules/ROOT/partials/getting-started/ref-registry-all-configs.adoc

+5
Original file line numberDiff line numberDiff line change
@@ -845,6 +845,11 @@ The following {registry} configuration options are available for each component
845845
|`apicurio-registry-ui`
846846
|`3.0.0`
847847
|The OIDC clientId
848+
|`apicurio.ui.auth.oidc.logout-url`
849+
|`string`
850+
|`f5`
851+
|`3.0.0`
852+
|The OIDC logout URL
848853
|`apicurio.ui.auth.oidc.redirect-uri`
849854
|`string`
850855
|`/`

ui/.docker-scripts/create-config.cjs

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const AUTH_URL=process.env["REGISTRY_AUTH_URL"];
1919
const AUTH_CLIENT_ID=process.env["REGISTRY_AUTH_CLIENT_ID"];
2020
const AUTH_CLIENT_SCOPES=process.env["REGISTRY_AUTH_CLIENT_SCOPES"];
2121
const AUTH_REDIRECT_URL=process.env["REGISTRY_AUTH_REDIRECT_URL"];
22+
const AUTH_LOGOUT_URL=process.env["REGISTRY_AUTH_LOGOUT_URL"];
2223

2324
const FEATURE_READ_ONLY=process.env["REGISTRY_FEATURE_READ_ONLY"];
2425
const FEATURE_BREADCRUMBS=process.env["REGISTRY_FEATURE_BREADCRUMBS"];
@@ -77,6 +78,9 @@ if (AUTH_TYPE === "oidc") {
7778
if (AUTH_CLIENT_SCOPES) {
7879
CONFIG.auth.options.scope = AUTH_CLIENT_SCOPES;
7980
}
81+
if (AUTH_LOGOUT_URL) {
82+
CONFIG.auth.options.logoutUrl = AUTH_LOGOUT_URL;
83+
}
8084
}
8185

8286
// Configure features

ui/ui-app/package-lock.json

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ui/ui-app/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"vite-tsconfig-paths": "5.0.1"
3232
},
3333
"dependencies": {
34-
"@apicurio/common-ui-components": "2.0.3",
34+
"@apicurio/common-ui-components": "2.0.4",
3535
"@apicurio/apicurio-registry-sdk": "file:../../typescript-sdk",
3636
"@apicurio/data-models": "1.1.27",
3737
"@microsoft/kiota-abstractions": "1.0.0-preview.66",

ui/ui-app/src/app/App.tsx

+7-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,13 @@ export const App: FunctionComponent<AppProps> = () => {
3131
type: config.authType() as "none" | "oidc",
3232
options: config.authOptions()
3333
};
34-
if (authConfig.type === "oidc" && (authConfig.options.redirectUri && authConfig.options.redirectUri.startsWith("/"))) {
35-
authConfig.options.redirectUri = window.location.origin + authConfig.options.redirectUri;
34+
if (authConfig.type === "oidc") {
35+
if (authConfig.options.redirectUri && authConfig.options.redirectUri.startsWith("/")) {
36+
authConfig.options.redirectUri = window.location.origin + authConfig.options.redirectUri;
37+
}
38+
if (authConfig.options.logoutUrl && authConfig.options.logoutUrl.startsWith("/")) {
39+
authConfig.options.logoutUrl = window.location.origin + authConfig.options.logoutUrl;
40+
}
3641
}
3742

3843
return (

ui/ui-app/src/services/useConfigService.ts

+1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ export interface OidcJsAuthOptions {
8686
redirectUri: string;
8787
clientId: string;
8888
scope: string;
89+
logoutUrl?: string;
8990
}
9091

9192
// Used when `type=keycloakjs`

0 commit comments

Comments
 (0)