论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
keycloak~登录皮肤动态切换的尝试
keycloak~登录皮肤动态切换的尝试
愛在花開的季節
金牌会员
|
2024-5-19 17:15:00
|
显示全部楼层
|
阅读模式
楼主
主题
891
|
帖子
891
|
积分
2673
keycloak的登录皮肤theme,可以设置领域全局的,大概每个客户端进行单独设置,这种设计是没有问题的,但有时,一个客户端大概有多种主题,这时,你只能再加个客户端,对应新的主题,但如许不方便日后的统计,因为很多统计维度都是以client为基础的,所以,我们需要在进入登录页时,让开发人员转具体的皮肤参数,然后动态切换皮肤,这个idea不错。
域全局皮肤
客户端个性皮肤
尝试~自定义ThemeSelectorProvider失败
这个应该是keycloak不支持多种皮肤,因为它默认通过default皮肤渲染的,咱们添加的,虽然在spi中注册成功了,但在实现中,并未应用。
https://stackoverflow.com/questions/72994502/keycloak-theme-selector-provider-create-not-called
https://github.com/dteleguin/keycloak-dynamic-branding/tree/master/keycloak-freemarker-plus
/**
* KC目前这个定义是未生效的,目前框架只支持默认的DefaultThemeSelectorProvider
*/
public class MyThemeSelectorProvider implements ThemeSelectorProvider {
KeycloakSession session;
public MyThemeSelectorProvider(KeycloakSession session) {
this.session = session;
}
@Override
public String getThemeName(Theme.Type type) {
return type.name();
}
@Override
public void close() {
}
}
public class MyThemeSelectorProviderFactory implements ThemeSelectorProviderFactory {
@Override
public ThemeSelectorProvider create(KeycloakSession session) {
return new MyThemeSelectorProvider(session);
}
@Override
public void init(Config.Scope config) {
}
@Override
public void postInit(KeycloakSessionFactory factory) {
}
@Override
public void close() {
}
@Override
public String getId() {
return "MyThemeSelectorProvider";
}
}
复制代码
org.keycloak.theme.ThemeSelectorProviderFactory文件中注册MyThemeSelectorProviderFactory
终极~还是修改了keycloak源码
修改org.keycloak.theme.DefaultThemeSelectorProvider文件getThemeName()方法,添加请求参数即可
终极的利用
https://{keycloak}/auth/realms/{realm}/protocol/openid-connect/auth?theme=你的皮肤名&client_id=account&redirect_uri=&response_type=code&scope=openid
keycloak会根据路径参数中theme的值,动态渲染登录皮肤
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
愛在花開的季節
金牌会员
这个人很懒什么都没写!
楼主热帖
【网络进阶】网络问题排查实例集锦(实 ...
流批一体开源项目ChunJun技术公开课— ...
Socket的长连接和短连接
HA启动Advanced SSH & Web Terminal 提 ...
Redis 原理 - Hash
RadonDB MySQL Kubernetes 2.2.0 发布 ...
一次服务器被入侵的处理过程分享 ...
Raid0、Raid1、Raid5及Raid10的区别 ...
Flink 作业提交流程
dotnet C# 使用 Vortice 支持 Direct2D ...
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表