1 | sudo socat TCP-LISTEN:80,fork TCP:localhost:8848 |
Month: July 2025
把Docker当沙盒用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | sudo docker run -itd \ --name srv1 \ -v /mnt/hgfs/share:/home/work/share \ -p 9083:9083 \ fedora:latest \ /bin/bash sudo docker exec -it srv1 /bin/bash sudo docker stop srv1 #sudo docker start srv1 sudo docker rm srv1 sudo docker rmi fedora:latest sudo docker system df -v |
Docker-in-Docker (DinD)
1 2 3 4 5 6 7 8 | udo docker run -itd \ --name jumpserver \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/usr/bin/docker \ -v /mnt/hgfs/share:/home/work/share \ -p 80:80 -p 2222:2222 \ fedora:latest \ /bin/bash |
在Keycloak里添加飞书IdP
先在Keycloak的管理员控制台的Identity Providers中添加OAuth v2 idp,Alias比如设为feishu。具体参数参考:
https://open.feishu.cn/document/sso/web-application-sso/login-overview
添加后,登陆中使用feishu第三方登陆,Keycloak后台报异常:No identifier provider for identity.
原因是标准的OAuth2流程在第三步取user_info,返回的json是在根结点有sub字段表示登陆者id,但飞书的user_info返回字段不标准,比如需要我们改代码取data子节点的email作为登陆者id。
具体在keycloak-26.3.0\services\src\main\java\org\keycloak\broker\oauth\OAuth2IdentityProvider.java
doGetFederatedIdentity函数返回identity之前,加入代码:
1 2 3 4 5 | if (userInfo.has("data")) { JsonNode dataNode = userInfo.get("data"); id = dataNode.get("email") != null ? dataNode.get("email").asText() : null; identity.setId(id); } |