将区域设置从Spring Web App传递到KeyCloak并返回

时间:2018-07-04 15:06:13

标签: locale keycloak

我有一个与Keycloak(openId)集成的多语言Spring Boot Web应用程序。对于Keycloak集成,我使用keycloak-spring-security-adapter。我的应用程序中的语言环境状态由LocaleContextHolder管理。如何将语言环境传递到Keycloak登录页面?我发现这里有一个url参数'kc_locale',但是如果我不想覆盖Keycloak的许多类,我不知道如何传递它。

是否有一种简单的方法可以将语言环境传递给Keycloak登录名/ Keycloak适配器?

1 个答案:

答案 0 :(得分:1)

虽然我知道您在询问有关Spring / Java的信息,但我想给您一些可能有用的信息

OpenID Connect规范(https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest)具有参数 ui_locales 可能会有用

  

ui_locales       可选的。最终用户用于用户界面的首选语言和脚本,以BCP47 [RFC5646]的空格分隔列表表示   语言标签值,按首选项排序。例如,值   “ fr-CA fr en”代表加拿大人偏爱法语,   然后是法语(没有区域名称),然后是英语   (无区域名称)。如果某些或   OpenID提供程序不支持所有请求的语言环境。

您可以将此参数传递给您的OpenID Connect请求,Keycloak应该按照以下说明接受它:https://www.keycloak.org/docs/latest/server_development/#_locale_selector

  

启用国际化后,语言环境将在   以下优先级:

kc_locale query parameter

KEYCLOAK_LOCALE cookie value

User’s preferred locale if a user instance is available

ui_locales query parameter

Accept-Language request header

Realm’s default language
相关问题