当前位置: 首页 > news >正文

Spring Boot集成Keycloak

前言

本文参考A Quick Guide to Using Keycloak with Spring Boot,整理实战中遇到的问题。

Docker 安装 Keycloak

下载镜像

quay下载镜像

docker pull quay.io/keycloak/keycloak

失败的话,可再次尝试。

启动keycloak

docker run -p 6060:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:latest

端口根据实际做映射。

官方是:docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:9.0.2

目前最新版本是9.0.2,建议直接换成:latest,自动拉取最新的镜像。

启动成功:

本例是在本地环境启动,若在生产环境启动,需要开启SSL

Browsers and applications that interact with the realm must honor the SSL/HTTPS requirements defined by the SSL Mode or they will not be allowed to interact with the server.

登陆

http://localhost:6060/auth

点击Administration Console

用户名:admin
密码:admin

Keycloak配置

参考A Quick Guide to Using Keycloak with Spring Boot,一样的配置就行。

Spring Boot应用启动

下载源码

下载源码

更改配置

keycloak.auth-server-url=http://localhost:6060/auth

keycloak.realm=SpringBootKeycloak
keycloak.resource=login-app
keycloak.public-client=true
keycloak.security-constraints[0].authRoles[0]=user
keycloak.security-constraints[0].securityCollections[0].patterns[0]=/customers/*
更改依赖

源码的部分依赖,拉取不到。

移除parent
    <parent><groupId>com.baeldung</groupId><artifactId>parent-boot-1</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../../parent-boot-1</relativePath></parent>
增加dependencyManagement
    <properties><spring-boot.version>1.5.22.RELEASE</spring-boot.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
增加dependency
        <dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.0</version></dependency><dependency><groupId>org.keycloak</groupId><artifactId>keycloak-spring-boot-starter</artifactId><version>3.3.0.Final</version></dependency>
增加maven-compiler-plugin
    <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>10</source><target>10</target></configuration></plugin></plugins></build>

启动

23:37:26.668 [main] INFO  o.s.j.e.a.AnnotationMBeanExporter - Registering beans for JMX exposure on startup
23:37:26.681 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8081"]
23:37:26.689 [main] INFO  o.a.tomcat.util.net.NioSelectorPool - Using a shared selector for servlet write/read
23:37:26.701 [main] INFO  o.s.b.c.e.t.TomcatEmbeddedServletContainer - Tomcat started on port(s): 8081 (http)
23:37:26.735 [main] INFO  com.baeldung.keycloak.SpringBoot - Started SpringBoot in 4.541 seconds (JVM running for 10.586)

访问

http://localhost:8081/

点击customers,登陆,获取列表

用户名:user1
密码:xsw2@WSX

参考

Keycloak on Docker

A Quick Guide to Using Keycloak with Spring Boot

spring-boot-keycloak

相关文章:

  • 【NLP 67、知识图谱】
  • fpga系列 HDL:tips 初始化错误排查 仿真和实际不符的可能原因
  • 23种设计模式-结构型模式之代理模式(Java版本)
  • CENTOS 7 安装VNC
  • 电脑安装CentOS系统
  • 邀请函 | 「软件定义汽车 同星定义软件」 TOSUN用户日2025·杭州站
  • vscode使用remote ssh插件连接服务器的问题
  • 全景VR是什么?全景VR有什么热门用途?
  • Spark-SQL 四(实验)
  • opcua批量读取变量
  • FlaskRestfulAPI接口的初步认识
  • Android开发中的复制和粘贴
  • 关于springmvc的404问题的一种猜测解决方案
  • 蓝桥杯 17.发现环
  • uniapp微信小程序:WIFI设备配网之TCP/UDP开发AP配网
  • mysql的binlog,redolog,undolog的区别
  • Linux下 REEF3D及DIVEMesh 源码编译安装及使用
  • 【JavaWeb后端开发03】MySQL入门
  • 无需接线!虚幻引擎变量跨次元绑定的无线电奥秘
  • 转化率提升47%?亚马逊用户行为预测模型深度解读
  • 观察|首个半马落幕:人形机器人场景应用才刚站上起点
  • 美国土安全部长餐厅遇窃,重要证件被盗走
  • 花3000元就能买“国际机构”的证书?揭秘假证产业链
  • 18条举措!上海国际金融中心进一步提升跨境金融服务便利化
  • 史蒂夫·麦奎因透露罹患前列腺癌,呼吁同胞莫受困于男性气概
  • 全国登记在册民营企业超过5700万户