pac4j/undertow-pac4j
GitHub: pac4j/undertow-pac4j
undertow-pac4j 是一个为Undertow Web应用提供全面身份验证和授权支持的安全库。
Stars: 41 | Forks: 8
`undertow-pac4j` 项目是一个**用于 Undertow Web 应用的简单而强大的安全库**,支持身份验证和授权,同时也支持应用程序登出和高级功能如 CSRF 保护。
它基于 Java 17、Undertow 2 以及 **[pac4j 安全引擎](https://github.com/pac4j/pac4j) v6**。采用 Apache 2 许可证。
[**主要概念和组件:**](https://www.pac4j.org/docs/main-concepts-and-components.html)
1. 一个 [**客户端**](https://www.pac4j.org/docs/clients.html) 代表一种身份验证机制。它执行登录过程并返回用户资料。间接客户端用于 Web 应用程序身份验证,而直接客户端用于 Web 服务身份验证:
▸ OpenID Connect - SAML - CAS - OAuth - HTTP - LDAP - SQL - JWT - MongoDB - Kerberos - IP 地址 - REST API
2. 一个 [**授权器**](https://www.pac4j.org/docs/authorizers.html) 用于检查对已验证用户资料或当前 Web 上下文的授权:
▸ 角色 / 权限 - 匿名 / 记住我 / (完全) 已验证 - 资料类型、属性 - CORS - CSRF - 安全头 - IP 地址、HTTP 方法
3. 一个 [**匹配器**](https://www.pac4j.org/docs/matchers.html) 定义 `SecurityFilter` 是否必须被应用,并可用于额外的 Web 处理。
4. `SecurityHandler` 通过根据客户端和授权器配置检查用户是否已验证且授权有效来保护 URL。如果用户未验证,它为直接客户端执行身份验证或为间接客户端启动登录过程。
5. `CallbackHandler` 为间接客户端完成登录过程。
6. `LogoutHandler` 使用户从应用程序登出,并在身份提供者层面触发登出。
## 使用方法
### 1) [添加所需的依赖项](https://github.com/pac4j/undertow-pac4j/wiki/Dependencies)
### 2) 定义:
### - [安全配置](https://github.com/pac4j/undertow-pac4j/wiki/Security-configuration)
### - [回调配置](https://github.com/pac4j/undertow-pac4j/wiki/Callback-configuration),仅适用于 Web 应用程序
### - [登出配置](https://github.com/pac4j/undertow-pac4j/wiki/Logout-configuration)
### 3) [应用安全性](https://github.com/pac4j/undertow-pac4j/wiki/Apply-security)
### 4) [获取已验证的用户资料](https://github.com/pac4j/undertow-pac4j/wiki/Get-the-authenticated-user-profiles)
## 演示
演示 Web 应用:[undertow-pac4j-demo](https://github.com/pac4j/undertow-pac4j-demo) 可用于测试,并实现了多种身份验证机制:Facebook、Twitter、表单、基本认证、CAS、SAML、OpenID Connect、JWT 等。
## 版本
最新发布版本为 [](https://repo1.maven.org/maven2/org/pac4j/undertow-pac4j)。[下一个版本](https://github.com/pac4j/undertow-pac4j/wiki/Next-version) 正在开发中。
查看 [发布说明](https://github.com/pac4j/undertow-pac4j/wiki/Release-Notes)。
同时查看 [迁移指南](https://github.com/pac4j/undertow-pac4j/wiki/Migration-guide)。
## 需要帮助?
您可以使用 [邮件列表](https://www.pac4j.org/mailing-lists.html) 或 [商业支持](https://www.pac4j.org/commercial-support.html)。
标签:CAS, Checkov, CSRF保护, JS文件枚举, JWT, LDAP, OAuth, OpenID Connect, SAML2, Streamlit, Undertow, Web安全, YAML, 匹配器, 单点登录, 回调处理器, 域名枚举, 安全协议, 安全处理器, 安全库, 安全引擎, 安全过滤器, 授权, 授权器, 登出处理器, 蓝队分析, 认证机制, 访问控制, 身份管理