Pac4j(待更新)

Pac4j简介

  pac4j是一个简单而强大的安全引擎,用于Java对用户进行身份验证、获取其配置文件和管理授权,以确保web应用程序安全。它提供了一套完整的概念和组件。它基于Java 8,并在Apache 2许可下使用。它可用于大多数框架/工具和支持大多数认证/授权机制。


第一节 主要概念和组件介绍

  1. client(客户端): 客户端表示身份验证机制(流程),它执行登录过程并返回一个用户概要文件。间接客户端(IndirectClient)用于UI身份验证,而直接客户端(DirectClient)则用于web服务身份验证。
  2. authenticator(认证器):HTTP客户端验证凭证需要一个认证器。它是ProfileService的一个子组件,该组件验证凭证,同时也处理用户的创建、更新和移除操作。
  3. authorizer(授权器):授权器用于检查已认证用户的授权或当前web上下文中的授权。
  4. matcher(匹配器):一个匹配器定义了security是否必须应用到安全过滤器。
  5. config(配置):配置通过客户端、授权器和匹配器定义安全配置。
  6. user profile(用户概要文件):用户概要是已认证用户的概要。它有一个标识符、属性、角色、权限、一个“记住-我”属性和一个链接标识符。
  7. web context(web上下文):web上下文是对pac4j实现特有的HTTP请求和响应的抽象,而关联的SessionStore表示会话的实现。
  8. security filter(安全过滤器):(或者不论使用什么原理去拦截的HTTP请求)根据客户端和授权配置,通过检查用户已认证和已授权来保护一个URL。如果用户没有被认证,它对直接客户端展示认证,对间接客户端启动登录进程。
  9. callback controller(回调控制器):对间接客户端结束登录进程后的回调。
  10. logout controller(退出登录控制器):处理应用程序和/或身份服务器注销。

第二节 认证机制

  client支持多种认证机制:OAuth - SAML - CAS - OpenID Connect - HTTP - OpenID - Google App Engine - Kerberos (SPNEGO)

  Authenticators认证器:LDAP - SQL - JWT - MongoDB - CouchDB - IP address - REST API

1 Clients

(未完待续…)

2 Authenticators

(未完待续…)


第三节 认证机制-授权器

▸ Roles/permissions - Anonymous/remember-me/(fully) authenticated - Profile type, attribute
▸ CORS - CSRF - Security headers - IP address, HTTP method

  大多数pac4j组件实现DefaultAuthorizationChecker组件来使用pac4j的逻辑和授权。因此,下列授权器可以通过短名称自动找到:

  1. hsts:StrictTransportSecurityHeader 认证器
  2. nosniff: XContentTypeOptionsHeader 认证器
  3. noframe: XFrameOptionsHeader 认证器
  4. xssprotection: XSSProtectionHeader 认证器
  5. nocache: CacheControlHeader 认证器
  6. securityheaders: as a shortcut for hsts,nosniff,noframe,xssprotection,nocache
  7. csrfToken: CsrfTokenGeneratorAuthorizer 认证器
  8. csrfCheck: CsrfAuthorizer 认证器
  9. csrf as a shortcut for csrfToken,csrfCheck
  10. isAnonymous:IsAnonymousAuthorizer 认证器
  11. isAuthenticated:IsAuthenticatedAuthorizer 认证器
  12. isFullyAuthenticated:IsFullyAuthenticatedAuthorizer 认证器
  13. isRemembered: IsRememberedAuthorizer 认证器
  14. allowAjaxRequests for a default configuration of the CorsAuthorizer authorizer with the Access-Control-Allow-Origin header set to *.

  这些短名称都作为常量定义在DefaultAuthorizers类中。

(未完待续…)


第四节 适配器

(未完待续…)


第五节 安全配置

(未完待续…)


第六节 用户配置文件

(未完待续…)


第七节 会话存储和存储

(未完待续…)


第八节 发布说明 - 向后兼容性

(未完待续…)


第九节 认证流程 - 大图

(未完待续…)


第十节 自定义

(未完待续…)


第十一节 第三方扩展

(未完待续…)


第十二节 Java文档

(未完待续…)


参考博客和文章书籍等:

Pac4j官方文档

Pac4j文档翻译(3.0)

因博客主等未标明不可引用,若部分内容涉及侵权请及时告知,我会尽快修改和删除相关内容