diff --git a/_generated-doc/main/config/quarkus-all-config.adoc b/_generated-doc/main/config/quarkus-all-config.adoc index 73e2c26f75f..eb3b9a82630 100644 --- a/_generated-doc/main/config/quarkus-all-config.adoc +++ b/_generated-doc/main/config/quarkus-all-config.adoc @@ -54886,7 +54886,7 @@ ifndef::add-copy-button-to-env-var[] Environment variable: `+++QUARKUS_OIDC_PROVIDER+++` endif::add-copy-button-to-env-var[] -- -a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `spotify`, `strava`, `twitch`, `twitter`, `x` +a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `slack`, `spotify`, `strava`, `twitch`, `twitter`, `x` | a| [[quarkus-oidc_quarkus-oidc-token-cache-max-size]] [.property-path]##link:#quarkus-oidc_quarkus-oidc-token-cache-max-size[`quarkus.oidc.token-cache.max-size`]## @@ -57400,7 +57400,7 @@ ifndef::add-copy-button-to-env-var[] Environment variable: `+++QUARKUS_OIDC__TENANT__PROVIDER+++` endif::add-copy-button-to-env-var[] -- -a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `spotify`, `strava`, `twitch`, `twitter`, `x` +a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `slack`, `spotify`, `strava`, `twitch`, `twitter`, `x` | diff --git a/_generated-doc/main/config/quarkus-oidc.adoc b/_generated-doc/main/config/quarkus-oidc.adoc index 6c2cedcac45..abff84fbb93 100644 --- a/_generated-doc/main/config/quarkus-oidc.adoc +++ b/_generated-doc/main/config/quarkus-oidc.adoc @@ -2531,7 +2531,7 @@ ifndef::add-copy-button-to-env-var[] Environment variable: `+++QUARKUS_OIDC_PROVIDER+++` endif::add-copy-button-to-env-var[] -- -a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `spotify`, `strava`, `twitch`, `twitter`, `x` +a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `slack`, `spotify`, `strava`, `twitch`, `twitter`, `x` | a| [[quarkus-oidc_quarkus-oidc-token-cache-max-size]] [.property-path]##link:#quarkus-oidc_quarkus-oidc-token-cache-max-size[`quarkus.oidc.token-cache.max-size`]## @@ -5045,7 +5045,7 @@ ifndef::add-copy-button-to-env-var[] Environment variable: `+++QUARKUS_OIDC__TENANT__PROVIDER+++` endif::add-copy-button-to-env-var[] -- -a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `spotify`, `strava`, `twitch`, `twitter`, `x` +a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `slack`, `spotify`, `strava`, `twitch`, `twitter`, `x` | diff --git a/_generated-doc/main/config/quarkus-oidc_quarkus.oidc.adoc b/_generated-doc/main/config/quarkus-oidc_quarkus.oidc.adoc index 6c2cedcac45..abff84fbb93 100644 --- a/_generated-doc/main/config/quarkus-oidc_quarkus.oidc.adoc +++ b/_generated-doc/main/config/quarkus-oidc_quarkus.oidc.adoc @@ -2531,7 +2531,7 @@ ifndef::add-copy-button-to-env-var[] Environment variable: `+++QUARKUS_OIDC_PROVIDER+++` endif::add-copy-button-to-env-var[] -- -a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `spotify`, `strava`, `twitch`, `twitter`, `x` +a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `slack`, `spotify`, `strava`, `twitch`, `twitter`, `x` | a| [[quarkus-oidc_quarkus-oidc-token-cache-max-size]] [.property-path]##link:#quarkus-oidc_quarkus-oidc-token-cache-max-size[`quarkus.oidc.token-cache.max-size`]## @@ -5045,7 +5045,7 @@ ifndef::add-copy-button-to-env-var[] Environment variable: `+++QUARKUS_OIDC__TENANT__PROVIDER+++` endif::add-copy-button-to-env-var[] -- -a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `spotify`, `strava`, `twitch`, `twitter`, `x` +a|`apple`, `discord`, `facebook`, `github`, `google`, `linkedin`, `mastodon`, `microsoft`, `slack`, `spotify`, `strava`, `twitch`, `twitter`, `x` | diff --git a/_versions/main/guides/_attributes.adoc b/_versions/main/guides/_attributes.adoc index 911c574d9ed..4e80aa6bda8 100644 --- a/_versions/main/guides/_attributes.adoc +++ b/_versions/main/guides/_attributes.adoc @@ -41,7 +41,7 @@ :quarkus-blob-url: https://github.com/quarkusio/quarkus/blob/main :quarkus-tree-url: https://github.com/quarkusio/quarkus/tree/main :quarkus-issues-url: https://github.com/quarkusio/quarkus/issues -:quarkus-images-url: https://github.com/quarkusio/quarkus-images/tree +:quarkus-images-url: https://github.com/quarkusio/quarkus-images :quarkus-chat-url: https://quarkusio.zulipchat.com :quarkus-mailing-list-subscription-email: quarkus-dev+subscribe@googlegroups.com :quarkus-mailing-list-index: https://groups.google.com/d/forum/quarkus-dev diff --git a/_versions/main/guides/getting-started-reactive.adoc b/_versions/main/guides/getting-started-reactive.adoc index c6ee1eef7ba..f5b67fa360d 100644 --- a/_versions/main/guides/getting-started-reactive.adoc +++ b/_versions/main/guides/getting-started-reactive.adoc @@ -184,6 +184,10 @@ Create the `src/main/java/org/acme/hibernate/orm/panache/FruitResource.java` fil ---- package org.acme.hibernate.orm.panache; +import java.util.List; + +import io.quarkus.panache.common.Sort; +import io.smallrye.mutiny.Uni; import jakarta.enterprise.context.ApplicationScoped; import jakarta.ws.rs.Path; diff --git a/_versions/main/guides/images/oidc-facebook-1.png b/_versions/main/guides/images/oidc-facebook-1.png index 4a5b67ab097..ffc582fbaa7 100644 Binary files a/_versions/main/guides/images/oidc-facebook-1.png and b/_versions/main/guides/images/oidc-facebook-1.png differ diff --git a/_versions/main/guides/images/oidc-facebook-2.png b/_versions/main/guides/images/oidc-facebook-2.png index e3836f96d54..5caf09ee2c6 100644 Binary files a/_versions/main/guides/images/oidc-facebook-2.png and b/_versions/main/guides/images/oidc-facebook-2.png differ diff --git a/_versions/main/guides/images/oidc-facebook-3.png b/_versions/main/guides/images/oidc-facebook-3.png index ee57845e060..4200cee4fc9 100644 Binary files a/_versions/main/guides/images/oidc-facebook-3.png and b/_versions/main/guides/images/oidc-facebook-3.png differ diff --git a/_versions/main/guides/images/oidc-facebook-4.png b/_versions/main/guides/images/oidc-facebook-4.png index 08199d4e7de..c1751073220 100644 Binary files a/_versions/main/guides/images/oidc-facebook-4.png and b/_versions/main/guides/images/oidc-facebook-4.png differ diff --git a/_versions/main/guides/images/oidc-facebook-5.png b/_versions/main/guides/images/oidc-facebook-5.png index 82bf435d7a3..db3e29fcf25 100644 Binary files a/_versions/main/guides/images/oidc-facebook-5.png and b/_versions/main/guides/images/oidc-facebook-5.png differ diff --git a/_versions/main/guides/images/oidc-facebook-6.png b/_versions/main/guides/images/oidc-facebook-6.png index 92ef83325e9..189af2445a6 100644 Binary files a/_versions/main/guides/images/oidc-facebook-6.png and b/_versions/main/guides/images/oidc-facebook-6.png differ diff --git a/_versions/main/guides/images/oidc-slack-1.png b/_versions/main/guides/images/oidc-slack-1.png new file mode 100644 index 00000000000..2ce473f2587 Binary files /dev/null and b/_versions/main/guides/images/oidc-slack-1.png differ diff --git a/_versions/main/guides/images/oidc-slack-2.png b/_versions/main/guides/images/oidc-slack-2.png new file mode 100644 index 00000000000..37dd65e367d Binary files /dev/null and b/_versions/main/guides/images/oidc-slack-2.png differ diff --git a/_versions/main/guides/images/oidc-slack-3.png b/_versions/main/guides/images/oidc-slack-3.png new file mode 100644 index 00000000000..d53c81f4f52 Binary files /dev/null and b/_versions/main/guides/images/oidc-slack-3.png differ diff --git a/_versions/main/guides/images/oidc-slack-4.png b/_versions/main/guides/images/oidc-slack-4.png new file mode 100644 index 00000000000..6425b138c33 Binary files /dev/null and b/_versions/main/guides/images/oidc-slack-4.png differ diff --git a/_versions/main/guides/images/oidc-slack-5.png b/_versions/main/guides/images/oidc-slack-5.png new file mode 100644 index 00000000000..9ca2ab413a6 Binary files /dev/null and b/_versions/main/guides/images/oidc-slack-5.png differ diff --git a/_versions/main/guides/security-openid-connect-client-reference.adoc b/_versions/main/guides/security-openid-connect-client-reference.adoc index fa652b907ac..329345aa1a9 100644 --- a/_versions/main/guides/security-openid-connect-client-reference.adoc +++ b/_versions/main/guides/security-openid-connect-client-reference.adoc @@ -1275,7 +1275,7 @@ public interface ProtectedResourceService { Additionally, `AccessTokenRequestReactiveFilter` can support a complex application that needs to exchange the tokens before propagating them. -If you work with link:https://www.keycloak.org/docs/latest/securing_apps/#_token-exchange[Keycloak] or another OIDC provider that supports a link:https://tools.ietf.org/html/rfc8693[Token Exchange] token grant, then you can configure `AccessTokenRequestReactiveFilter` to exchange the token like this: +If you work with link:https://www.keycloak.org/securing-apps/token-exchange[Keycloak] or another OIDC provider that supports a link:https://tools.ietf.org/html/rfc8693[Token Exchange] token grant, then you can configure `AccessTokenRequestReactiveFilter` to exchange the token like this: [source,properties] ---- @@ -1369,7 +1369,7 @@ Alternatively, `AccessTokenRequestFilter` can be registered automatically with a ==== Exchange token before propagation -If the current access token needs to be exchanged before propagation and you work with link:https://www.keycloak.org/docs/latest/securing_apps/#_token-exchange[Keycloak] or other OpenID Connect Provider which supports a link:https://tools.ietf.org/html/rfc8693[Token Exchange] token grant, then you can configure `AccessTokenRequestFilter` like this: +If the current access token needs to be exchanged before propagation and you work with link:https://www.keycloak.org/securing-apps/token-exchange[Keycloak] or other OpenID Connect Provider which supports a link:https://tools.ietf.org/html/rfc8693[Token Exchange] token grant, then you can configure `AccessTokenRequestFilter` like this: [source,properties] ---- diff --git a/_versions/main/guides/security-openid-connect-providers.adoc b/_versions/main/guides/security-openid-connect-providers.adoc index f24cbd85555..6f43935a6c5 100644 --- a/_versions/main/guides/security-openid-connect-providers.adoc +++ b/_versions/main/guides/security-openid-connect-providers.adoc @@ -165,11 +165,11 @@ Facebook you will not be let you test your application on `localhost` like most you will need to run it over HTTPS and make it publicly accessible, so for development purposes you may want to use a service such as https://ngrok.com. -In order to set up OIDC for Facebook start by https://developers.facebook.com/apps/create/[Creating an application], select `None` as an app type, and press `Next`: +In order to set up OIDC for Facebook start by https://developers.facebook.com/apps/create/[Creating an application], select `Other` as an app type, and click `Next`. image::oidc-facebook-1.png[role="thumb"] -Now enter an application name, and contact email, and press `Create app`: +Now choose your application type. For this guide choose `Consumer` and click `Next` until you reach the screen below. Now enter an application name, and contact email, and press `Create app`: image::oidc-facebook-2.png[role="thumb"] @@ -177,11 +177,12 @@ On the app page, click `Set up` on the `Facebook login` product: image::oidc-facebook-3.png[role="thumb"] -Quick the `Quickstarts` page and click on `Facebook login > Settings` on the left menu: +On the `Quickstart` page click on `Facebook login > Settings` on the left menu: image::oidc-facebook-4.png[role="thumb"] -Enter your `Redirect URIs` (set to `/_renarde/security/oidc-success`) and press `Save changes`: +First click on `Get Advanced Access` to switch `public_profile` to advanced access. +Then enter your `Redirect URIs` (set to `/facebook`) and press `Save changes`: image::oidc-facebook-5.png[role="thumb"] @@ -406,6 +407,42 @@ quarkus.oidc.token.customizer-name=azure-access-token-customizer ==== +[[slack]] +=== Slack + +Create a https://api.slack.com/authentication/sign-in-with-slack#setup[Slack application]: + +image::oidc-slack-1.png[role="thumb"] + +Select application name, workspace, and remember it, you will need it later: + +image::oidc-slack-2.png[role="thumb"] + +Please save client id and secret displayed on the next page, you will need them later: + +image::oidc-slack-3.png[role="thumb"] + +Configure redirect URLs. +Slack provider requires HTTPS protocol, for development purposes, you can use ngrok: + +image::oidc-slack-4.png[role="thumb"] + +You can now configure your `application.properties`: + +[source,properties] +---- +quarkus.oidc.provider=slack +quarkus.oidc.client-id= +quarkus.oidc.credentials.secret= +quarkus.oidc.authentication.extra-params.team=quarkus-slack <1> +---- +<1> Use the `team` parameter to refer to the workspace you chose during the Slack OIDC application registration. + +Open your browser and navigate to your application `https://.ngrok-free.app/`. +Quarkus will redirect you to Slack provider on the first request where you can grant required permissions: + +image::oidc-slack-5.png[role="thumb"] + [[spotify]] === Spotify