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... ## 版本 最新发布的版本是 [![Maven Central](https://img.shields.io/maven-central/v/org.pac4j/play-pac4j-parent.svg)](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, 令牌认证, 单点登录, 域名枚举, 安全库, 开源安全工具, 授权, 框架安全, 注销, 网络安全, 认证, 访问控制, 逆向工程平台, 隐私保护