keycloak 集成微信插件(SPI)

最近因为公司原因,权限管理使用到了keycloak,按照要求需要集成微信,但是公司安装的keycloak版本比较高:19.0.3

查阅了很多的博文,发现关于集成微信插件的文章几乎没有,可能和keycloak使用人群在国内比较少吧

而且有个很大的问题,keycloak高版本和低版本架构不一样,导致一些老版本的插件根本不能用

说明

本文适用于keycloak 19以上的版本 ,18的版本我没试过,你可以自己下载试试,我个人建议用最新版keycloak

下载源码后,自行修改pom.xml 相version应版本

准备:这里是PC平台扫码登录,首先你得拿到微信开放平台的appid 和appkey 

1. 下载插件

插件查考了一些博主写的文章,在根据keycloak的官方源码做了修正和重写,可以前往我的gitee仓库自行下载

源码地址:keycloak-services-social-weixinicon-default.png?t=N7T8https://gitee.com/nicckco/study-java/tree/master/keycloak-plugin/keycloak-services-social-weixin

开发语言: JAVA 

JDK版本:java 11 (由于kecloak-19需要java11以上版本才能运行,建议使用11或以上的JDK)

2. 打包

自己引入maven项目,打jar包,我不多说了

3. 安装

直接看md文件吧,懒得写了,在gitee仓库里面写的比较详细了,如图

4. Http如何获取Keycloak accesstoken

        官方文档:Server Developer Guide

        

        这边简单介绍下,如何基于http请求获取keycloak Accesstoken

        请看如图案例,工具POSTMAN:

请求参数:

curl \
  -d "client_id=admin-cli" \
  -d "client_secret=client_secret" \
  -d "grant_type=client_credentials" \
  "http://localhost:8080/realms/master/protocol/openid-connect/token"

将token 拼接到header里面就可以调用keycloak的其他API接口了,拼接方式:

headers: {
    'Authorization': 'Bearer' + access_token
}

若想基于登录后code获取信息,参考:Keycloak各种配置及API的使用-CSDN博客

再次之前请查看官方文档

参考文章:

keycloak官方文档:OpenJDK - Keycloak

keyloak 源码对比记录:KEYCLOAK-14483 Broker state param fix · keycloak/keycloak@41dc94f · GitHub

keycloak 微信插件SPI (keycloak 老版本插件源码): keycloak-services-social-weixin: keycloak social weixin

其他插件(其他博主仓库推荐)

其实这些插件在keycloak里面已经集成了,有兴趣看看

地址:https://github.com/keycloak/keycloak/tree/main/services/src/main/java/org/keycloak/social

注意:这些插件可能不适用你的版本,还是那句话,keycloak新旧版本架构不同,源码不同,所以插件不一定能用,自行选择

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值