keycloak - 鉴权quarkus

目录

一、前言

二、遇到的问题

1、keycloak中配置public访问方式如何配置keycloak

2、keycloak拦截登录后,重定向多次报错,因cookie超长

三、解决问题

1、环境说明 

2、对应keycloak public访问方式的keycloak配置

3、解决cookie太长的问题

a、方案分析

b、方案实践

c、效果


一、前言

keycloak-鉴权quarkus框架_keycloak 配置-CSDN博客

这是之前写的keycloak 鉴权 quarkus 框架的基础配置,基于上篇集成quarkus文章遇到的问题,本文做一个补充。 

二、遇到的问题

1、keycloak中配置public访问方式如何配置keycloak

2、keycloak拦截登录后,重定向多次报错,因cookie超长

三、解决问题

1、环境说明 

quarkus:3.2.10
keycloak: 18.0.2

2、对应keycloak public访问方式的keycloak配置

#keyCloak鉴权配置
quarkus.oidc.auth-server-url=http://127.0.0.1:8080/realms/user_login
quarkus.oidc.client-id=user_login_client
quarkus.oidc.application-type=web-app
quarkus.oidc.tls.verification=none

3、解决cookie太长的问题

a、方案分析
 

  1. 设置 quarkus.oidc.token-state-manager.split-tokens=true,这将导致 ID 令牌、访问令牌和刷新令牌存储在单独的 cookies 中,从而减少每个 cookie 的大小。

  2. 如果不需要使用访问令牌作为角色来源、请求 UserInfo 或者将其传播到下游服务,可以设置 quarkus.oidc.token-state-manager.strategy=id-refresh-tokens

  3. 通过设置 quarkus.oidc.token-state-manager.encryption-required=false 来减少会话 cookie 的长度,但只有在你认为在你的应用程序网络中这样做是安全的情况下才应该这么做。

  4. 注册一个自定义的 quarkus.oidc.TokenStateManager CDI bean,并将替代优先级设置为 1。

b、方案实践

采取第一种方式,这种方式是将令牌拆分到不同的cookies中,可以避免单个cookie过大。

设置 quarkus.oidc.token-state-manager.split-tokens=true

#keyCloak鉴权配置
quarkus.oidc.auth-server-url=http://127.0.0.1:8080/realms/user_login
quarkus.oidc.client-id=user_login_client
quarkus.oidc.application-type=web-app
quarkus.oidc.tls.verification=none
quarkus.keycloak.policy-enforcer.enable=false
#此处配置即为拆分cookie
quarkus.oidc.token-state-manager.split-tokens=true

c、效果

 登录后可以请求到后端数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值