pac4j/play-pac4j
GitHub: pac4j/play-pac4j
play-pac4j 是为 Play 框架应用提供多协议认证和授权的安全库。
Stars: 413 | Forks: 105
`play-pac4j` 项目是一个**简单且强大的安全库,专为 Play framework v2 Web 应用和 Web 服务设计**,它支持认证和授权,同时也支持登出以及 CSRF 保护等高级功能。它可以与 Deadbolt 协同工作。
它基于 **[pac4j 安全引擎](https://github.com/pac4j/pac4j)**。根据 Apache 2 许可证发布。
| JDK | Play 版本 | pac4j 版本 | play-pac4j 版本 | 模块 (Java & Scala) | 使用 Lombok | 状态 |
|------|-----------|------------|----------------------|-------------------------------------------------|-------------|----------------|
| 17 | 3.0 | 6.x | 12.0.x-PLAY3.0 | play-pac4j_2.13 play-pac4j_3 | 是 | 生产就绪 |
| 17 | 2.9 | 6.x | 12.0.x-PLAY2.9 | play-pac4j_2.13 play-pac4j_3 | 是 | 生产就绪 |
| 17 | 2.8 | 6.x | 12.0.x-PLAY2.8 | play-pac4j_2.12 play-pac4j_2.13 | 是 | 生产就绪 |
| 11 | 2.8 | 5.x | 11.0.x-PLAY2.8 | play-pac4j_2.12 play-pac4j_2.13 | 否 | 生产就绪 |
| 11 | 2.8 | 4.x | 10.x | play-pac4j_2.12 play-pac4j_2.13 | 否 | 生产就绪 |
| 8 | 2.7 | 4.x | 9.x | play-pac4j_2.11 play-pac4j_2.12 play-pac4j_2.13 | 否 | 生产就绪 |
[**主要概念和组件:**](http://www.pac4j.org/docs/main-concepts-and-components.html)
1. 一个 [**客户端**](http://www.pac4j.org/docs/clients.html) 代表一种认证机制。它执行登录过程并返回用户资料。间接客户端用于 UI 认证,而直接客户端用于 Web 服务认证:
▸ OpenID Connect - SAML - CAS - OAuth - HTTP - Kerberos - LDAP - SQL - JWT - MongoDB - IP 地址 - REST API
2. 一个 [**授权器**](http://www.pac4j.org/docs/authorizers.html) 旨在检查已认证用户资料或当前 Web 上下文上的授权:
▸ 角色 - 匿名 / 记住我 / (完全) 认证 - 资料类型,属性 - CORS - CSRF - 安全头 - IP 地址,HTTP 方法
3. 一个 [**匹配器**](http://www.pac4j.org/docs/matchers.html) 定义是否必须应用安全,并可用于额外的 Web 处理
4. `Secure` 注解和 `Security` trait 保护方法,而 `SecurityFilter` 通过检查用户是否已认证以及授权是否有效(根据客户端和授权器的配置)来保护 URL。如果用户未认证,它会为直接客户端执行认证,或为间接客户端启动登录过程
5. `CallbackController` 完成间接客户端的登录过程
6. `LogoutController` 将用户从应用程序登出,并在身份提供者级别触发登出
7. `Pac4jScalaTemplateHelper` 可用于从 Twirl 模板获取用户资料。
## 使用
### 1) [添加必需的依赖项](https://github.com/pac4j/play-pac4j/wiki/Dependencies)
### 2) 定义:
### - [安全配置](https://github.com/pac4j/play-pac4j/wiki/Security-configuration)
### - [回调配置](https://github.com/pac4j/play-pac4j/wiki/Callback-configuration),仅适用于 Web 应用程序
### - [登出配置](https://github.com/pac4j/play-pac4j/wiki/Logout-configuration)
### 3) [应用安全](https://github.com/pac4j/play-pac4j/wiki/Apply-security)
### 4) [获取已认证的用户资料](https://github.com/pac4j/play-pac4j/wiki/Get-the-authenticated-user-profiles)
## 演示
两个演示 Web 应用程序:[play-pac4j-java-demo](https://github.com/pac4j/play-pac4j-java-demo) 和 [play-pac4j-scala-demo](https://github.com/pac4j/play-pac4j-scala-demo) 可用于测试,并实现了多种认证机制:Facebook、Twitter、表单认证、基本认证、CAS、SAML、OpenID Connect、JWT...
## 版本
最新发布的版本是 [](https://repo1.maven.org/maven2/org/pac4j/play-pac4j-parent)。
[下一个版本](https://github.com/pac4j/play-pac4j/wiki/Next-version) 正在开发中。
查看[发行说明](https://github.com/pac4j/play-pac4j/wiki/Release-notes)。
同时请查看[迁移指南](https://github.com/pac4j/play-pac4j/wiki/Migration-guide)。
## 需要帮助?
标签:CAS, CSRF保护, JS文件枚举, JWT, LDAP, OAuth, OpenID Connect, pac4j, Play框架, SAML2, Scala, Streamlit, YAML, 令牌认证, 单点登录, 域名枚举, 安全库, 开源安全工具, 授权, 框架安全, 注销, 网络安全, 认证, 访问控制, 逆向工程平台, 隐私保护