41个稳定版本 (17个主要版本)
新版本 25.0.400 | 2024年8月23日 |
---|---|
25.0.0 | 2024年6月19日 |
24.0.301 | 2024年4月25日 |
24.0.200 | 2024年3月30日 |
0.2.2 | 2020年3月12日 |
#25 in 异步
9,707 每月下载量
用于 5 个crate (2个直接使用)
565KB
10K SLoC
Keycloak管理REST API
法律
双授权于 MIT
或 UNLICENSE.
功能
实现了Keycloak管理REST API版本25.0.4.
功能标志
默认标志:tags-all
.
rc
:使用Arc
进行反序列化。schemars
:添加 schemars 支持。tags-all
:激活REST API中的所有标签(资源组),这是默认行为。禁用默认功能并使用单个tag-xxx
功能来激活所需资源组。完整列表请参阅 Cargo.toml.
用法
需要Rust版本 >= 1.74.0
.
在Cargo.toml中添加依赖项
[dependencies]
keycloak = "25.0"
use keycloak::{
types::*,
{KeycloakAdmin, KeycloakAdminToken},
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let url = std::env::var("KEYCLOAK_ADDR").unwrap_or_else(|_| "https://127.0.0.1:8080".into());
let user = std::env::var("KEYCLOAK_USER").unwrap_or_else(|_| "admin".into());
let password = std::env::var("KEYCLOAK_PASSWORD").unwrap_or_else(|_| "password".into());
let client = reqwest::Client::new();
let admin_token = KeycloakAdminToken::acquire(&url, &user, &password, &client).await?;
eprintln!("{:?}", admin_token);
let admin = KeycloakAdmin::new(&url, admin_token, client);
admin
.post(RealmRepresentation {
realm: Some("test".into()),
..Default::default()
})
.await?;
admin
.realm_users_post(
"test",
UserRepresentation {
username: Some("user".into()),
..Default::default()
},
)
.await?;
let users = admin
.realm_users_get(
"test", None, None, None, None, None, None, None, None, None, None, None, None, None,
None,
)
.await?;
eprintln!("{:?}", users);
let id = users
.iter()
.find(|u| u.username == Some("user".into()))
.unwrap()
.id
.as_ref()
.unwrap()
.to_string();
admin
.realm_users_with_user_id_delete("test", id.as_str())
.await?;
admin.realm_delete("test").await?;
Ok(())
}
版本协议
如果我们有 x.y.z
版本的 keycloak
,我们的包版本将是 x.y.(z * 100 + v)
,其中v是对官方 x.y.z
版本的次要修复版本。
示例:官方版本 13.0.1
对应的 crate 版本是 13.0.100
。其中 13.0.102
表示 keycloak 版本 13.0.1
和次要修复版本 2
。
更新
要更新当前版本,请使用提供的 update.ts deno
脚本
deno run --allow-env=KEYCLOAK_RUST_VERSION,KEYCLOAK_VERSION,KEYCLOAK_RUST_MAJOR_VERSION --allow-read=Cargo.toml --allow-write=Cargo.toml,api/openapi.json,src/types.rs,src/rest/generated_rest.rs --allow-net=keycloak.org,www.keycloak.org --allow-run=cargo,gh,git,handlebars-magic update.ts
依赖项
~4–15MB
~222K SLoC