Keycloak Bcrypt 开源项目教程
1. 项目的目录结构及介绍
Keycloak Bcrypt 项目的目录结构如下:
keycloak-bcrypt/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── github/
│ │ │ └── leroyguillaume/
│ │ │ └── keycloak/
│ │ │ └── bcrypt/
│ │ │ ├── BCryptPasswordHashProviderFactory.java
│ │ │ ├── BCryptPasswordHashProvider.java
│ │ │ └── BCryptCredentialModel.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── services/
│ │ └── org.keycloak.credential.hash.PasswordHashProviderFactory
│ └── test/
│ └── java/
│ └── com/
│ └── github/
│ └── leroyguillaume/
│ └── keycloak/
│ └── bcrypt/
│ └── BCryptPasswordHashProviderTest.java
├── pom.xml
└── README.md
目录结构介绍
src/main/java/com/github/leroyguillaume/keycloak/bcrypt/
:包含项目的主要源代码文件。BCryptPasswordHashProviderFactory.java
:负责创建 BCrypt 密码哈希提供者实例。BCryptPasswordHashProvider.java
:实现 BCrypt 密码哈希算法。BCryptCredentialModel.java
:定义 BCrypt 凭证模型。
src/main/resources/META-INF/services/
:包含服务提供者配置文件。org.keycloak.credential.hash.PasswordHashProviderFactory
:注册 BCrypt 密码哈希提供者工厂。
src/test/java/com/github/leroyguillaume/keycloak/bcrypt/
:包含测试代码文件。BCryptPasswordHashProviderTest.java
:测试 BCrypt 密码哈希提供者的功能。
pom.xml
:Maven 项目配置文件。README.md
:项目说明文档。
2. 项目的启动文件介绍
项目的启动文件主要是 BCryptPasswordHashProviderFactory.java
,它负责创建 BCrypt 密码哈希提供者实例。该文件实现了 PasswordHashProviderFactory
接口,并提供了 create
方法来创建 BCryptPasswordHashProvider
实例。
package com.github.leroyguillaume.keycloak.bcrypt;
import org.keycloak.credential.hash.PasswordHashProviderFactory;
import org.keycloak.credential.hash.PasswordHashProvider;
import org.keycloak.models.KeycloakSession;
public class BCryptPasswordHashProviderFactory implements PasswordHashProviderFactory {
public static final String ID = "bcrypt";
@Override
public PasswordHashProvider create(KeycloakSession session) {
return new BCryptPasswordHashProvider(ID, 10);
}
@Override
public String getId() {
return ID;
}
}
3. 项目的配置文件介绍
项目的配置文件主要是 org.keycloak.credential.hash.PasswordHashProviderFactory
,它位于 src/main/resources/META-INF/services/
目录下。该文件注册了 BCrypt 密码哈希提供者工厂,使得 Keycloak 能够识别并使用 BCrypt 密码哈希算法。
com.github.leroyguillaume.keycloak.bcrypt.BCryptPasswordHashProviderFactory
该文件内容很简单,只有一行,指定了 BCrypt 密码哈希提供者工厂的完整类名。