Skip to content

Commit 07e6bf0

Browse files
committed
Sync documentation of main branch
1 parent 5d4671e commit 07e6bf0

File tree

3 files changed

+143
-0
lines changed

3 files changed

+143
-0
lines changed

_versions/main/guides/security-oidc-bearer-token-authentication.adoc

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1464,6 +1464,58 @@ public class DiscoveryEndpointResponseFilter implements OidcResponseFilter {
14641464
<3> Use `OidcRequestContextProperties` request properties to get the tenant id.
14651465
<4> Get the response data as String.
14661466

1467+
== Programmatic OIDC start-up
1468+
1469+
OIDC tenants can be created programmatically like in the example below:
1470+
1471+
[source,java]
1472+
----
1473+
package io.quarkus.it.oidc;
1474+
1475+
import io.quarkus.oidc.Oidc;
1476+
import jakarta.enterprise.event.Observes;
1477+
1478+
public class OidcStartup {
1479+
1480+
void observe(@Observes Oidc oidc) {
1481+
oidc.createServiceApp("http://localhost:8180/realms/quarkus");
1482+
}
1483+
1484+
}
1485+
----
1486+
1487+
The code above is a programmatic equivalent to the following configuration in the `application.properties` file:
1488+
1489+
[source,properties]
1490+
----
1491+
quarkus.oidc.auth-server-url=http://localhost:8180/realms/quarkus
1492+
----
1493+
1494+
Should you need to configure more OIDC tenant properties, use the `OidcTenantConfig` builder like in the example below:
1495+
1496+
[source,java]
1497+
----
1498+
package io.quarkus.it.oidc;
1499+
1500+
import io.quarkus.oidc.Oidc;
1501+
import io.quarkus.oidc.OidcTenantConfig;
1502+
import jakarta.enterprise.event.Observes;
1503+
1504+
public class OidcStartup {
1505+
1506+
void createDefaultTenant(@Observes Oidc oidc) {
1507+
var defaultTenant = OidcTenantConfig
1508+
.authServerUrl("http://localhost:8180/realms/quarkus")
1509+
.token().requireJwtIntrospectionOnly().end()
1510+
.build();
1511+
oidc.create(defaultTenant);
1512+
}
1513+
}
1514+
----
1515+
1516+
For more complex setup involving multiple tenants please see the xref:security-openid-connect-multitenancy.adoc#programmatic-startup[Programmatic OIDC start-up for multitenant application]
1517+
section of the OpenID Connect Multi-Tenancy guide.
1518+
14671519
== References
14681520

14691521
* xref:security-oidc-configuration-properties-reference.adoc[OIDC configuration properties]

_versions/main/guides/security-oidc-code-flow-authentication.adoc

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2049,6 +2049,63 @@ quarkus.log.category."io.quarkus.oidc.runtime.OidcRecorder".min-level=TRACE
20492049

20502050
From the `quarkus dev` console, type `j` to change the application global log level.
20512051

2052+
== Programmatic OIDC start-up
2053+
2054+
OIDC tenants can be created programmatically like in the example below:
2055+
2056+
[source,java]
2057+
----
2058+
package io.quarkus.it.oidc;
2059+
2060+
import io.quarkus.oidc.Oidc;
2061+
import jakarta.enterprise.event.Observes;
2062+
2063+
public class OidcStartup {
2064+
2065+
void observe(@Observes Oidc oidc) {
2066+
oidc.createWebApp("http://localhost:8180/realms/quarkus", "quarkus-app", "mysecret");
2067+
}
2068+
2069+
}
2070+
----
2071+
2072+
The code above is a programmatic equivalent to the following configuration in the `application.properties` file:
2073+
2074+
[source,properties]
2075+
----
2076+
quarkus.oidc.auth-server-url=http://localhost:8180/realms/quarkus
2077+
quarkus.oidc.application-type=web-app
2078+
quarkus.oidc.client-id=quarkus-app
2079+
quarkus.oidc.credentials.secret=mysecret
2080+
----
2081+
2082+
Should you need to configure more OIDC tenant properties, use the `OidcTenantConfig` builder like in the example below:
2083+
2084+
[source,java]
2085+
----
2086+
package io.quarkus.it.oidc;
2087+
2088+
import io.quarkus.oidc.Oidc;
2089+
import io.quarkus.oidc.OidcTenantConfig;
2090+
import io.quarkus.oidc.common.runtime.config.OidcClientCommonConfig.Credentials.Secret.Method;
2091+
import jakarta.enterprise.event.Observes;
2092+
2093+
public class OidcStartup {
2094+
2095+
void createDefaultTenant(@Observes Oidc oidc) {
2096+
var defaultTenant = OidcTenantConfig
2097+
.authServerUrl("http://localhost:8180/realms/quarkus/")
2098+
.clientId("quarkus-app")
2099+
.credentials().clientSecret("mysecret", Method.POST).end()
2100+
.build();
2101+
oidc.create(defaultTenant);
2102+
}
2103+
}
2104+
----
2105+
2106+
For more complex setup involving multiple tenants please see the xref:security-openid-connect-multitenancy.adoc#programmatic-startup[Programmatic OIDC start-up for multitenant application]
2107+
section of the OpenID Connect Multi-Tenancy guide.
2108+
20522109
== References
20532110

20542111
* xref:security-oidc-configuration-properties-reference.adoc[OIDC configuration properties]

_versions/main/guides/security-openid-connect-multitenancy.adoc

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1110,6 +1110,40 @@ The default tenant configuration is automatically disabled when `quarkus.oidc.au
11101110

11111111
Be aware that tenant-specific configurations can also be disabled, for example: `quarkus.oidc.tenant-a.tenant-enabled=false`.
11121112

1113+
[[programmatic-startup]]
1114+
== Programmatic OIDC start-up for multiple tenants
1115+
1116+
Static OIDC tenants can be created programmatically like in the example below:
1117+
1118+
[source,java]
1119+
----
1120+
package io.quarkus.it.oidc;
1121+
1122+
import io.quarkus.oidc.Oidc;
1123+
import io.quarkus.oidc.OidcTenantConfig;
1124+
import jakarta.enterprise.event.Observes;
1125+
1126+
public class OidcStartup {
1127+
1128+
void observe(@Observes Oidc oidc) { <1>
1129+
oidc.create(OidcTenantConfig.authServerUrl("http://localhost:8180/realms/tenant-one").tenantId("tenant-one").build()); <2>
1130+
oidc.create(OidcTenantConfig.authServerUrl("http://localhost:8180/realms/tenant-two").tenantId("tenant-two").build()); <3>
1131+
}
1132+
1133+
}
1134+
----
1135+
<1> Observe OIDC event.
1136+
<2> Create OIDC tenant 'tenant-one'.
1137+
<3> Create OIDC tenant 'tenant-two'.
1138+
1139+
The code above is a programmatic equivalent to the following configuration in the `application.properties` file:
1140+
1141+
[source,properties]
1142+
----
1143+
quarkus.oidc.tenant-one.auth-server-url=http://localhost:8180/realms/tenant-one
1144+
quarkus.oidc.tenant-two.auth-server-url=http://localhost:8180/realms/tenant-two
1145+
----
1146+
11131147
== References
11141148

11151149
* xref:security-oidc-configuration-properties-reference.adoc[OIDC configuration properties]

0 commit comments

Comments
 (0)