Keycloak 自定义协议映射器示例教程
keycloak-custom-protocol-mapper-exampleAn example for building custom keycloak protocol mappers项目地址:https://gitcode.com/gh_mirrors/ke/keycloak-custom-protocol-mapper-example
1. 项目的目录结构及介绍
keycloak-custom-protocol-mapper-example/
├── Dockerfile
├── README.md
├── docker-compose.yml
├── data-setup/
│ ├── Dockerfile
│ ├── src/
│ │ └── main/
│ │ └── java/
│ │ └── DataSetupMain.java
├── protocol-mapper/
│ ├── Dockerfile
│ ├── src/
│ │ └── main/
│ │ └── java/
│ │ └── CustomProtocolMapper.java
Dockerfile
: 用于构建和部署自定义协议映射器的Docker文件。README.md
: 项目说明文档。docker-compose.yml
: 用于启动Keycloak实例的Docker Compose配置文件。data-setup/
: 用于通过Keycloak的REST API配置Keycloak的项目。
Dockerfile
: 用于构建data-setup模块的Docker文件。src/
: data-setup模块的源代码目录。
DataSetupMain.java
: 主类,用于配置Keycloak并添加示例数据。
protocol-mapper/
: 包含自定义协议映射器代码的项目。
Dockerfile
: 用于构建protocol-mapper模块的Docker文件。src/
: protocol-mapper模块的源代码目录。
CustomProtocolMapper.java
: 自定义协议映射器的主类。
2. 项目的启动文件介绍
docker-compose.yml
version: '3.8'
services:
keycloak:
image: jboss/keycloak:latest
ports:
- "11080:8080"
environment:
- KEYCLOAK_USER=admin
- KEYCLOAK_PASSWORD=password
volumes:
- ./protocol-mapper/target/protocol-mapper.jar:/opt/jboss/keycloak/standalone/deployments/protocol-mapper.jar
depends_on:
- data-setup
data-setup:
build: ./data-setup
depends_on:
- keycloak
keycloak
: 定义Keycloak服务的配置,包括镜像、端口映射、环境变量和卷挂载。data-setup
: 定义data-setup服务的配置,包括构建路径和依赖关系。
Dockerfile
(protocol-mapper)
FROM maven:3.6-jdk-11 AS build
COPY src /usr/src/app/src
COPY pom.xml /usr/src/app
RUN mvn -f /usr/src/app/pom.xml clean package
FROM jboss/keycloak:latest
COPY --from=build /usr/src/app/target/protocol-mapper.jar /opt/jboss/keycloak/standalone/deployments/
- 使用Maven构建自定义协议映射器,并将生成的JAR文件复制到Keycloak实例中。
Dockerfile
(data-setup)
FROM maven:3.6-jdk-11 AS build
COPY src /usr/src/app/src
COPY pom.xml /usr/src/app
RUN mvn -f /usr/src/app/pom.xml clean package
FROM openjdk:11-jre-slim
COPY --from=build /usr/src/app/target/data-setup.jar /app/data-setup.jar
ENTRYPOINT ["java", "-jar", "/app/data-setup.jar"]
- 使用Maven构建data-setup模块,并将生成的JAR文件作为容器入口点执行。
3. 项目的配置文件介绍
docker-compose.yml
version: '3.8'
services:
keycloak:
image: jboss/keycloak:latest
ports:
- "11080:8080"
environment:
- KEYCLOAK_USER=admin
- KEYCLOAK_PASSWORD=password
volumes:
- ./protocol-mapper/target/protocol-mapper.jar:/opt/jboss/keycloak/standalone/deployments/protocol-mapper.jar
depends_on:
- data-
keycloak-custom-protocol-mapper-exampleAn example for building custom keycloak protocol mappers项目地址:https://gitcode.com/gh_mirrors/ke/keycloak-custom-protocol-mapper-example