pac4j

Security engine for Java (authentication, authorization, multi frameworks): OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...

Github stars Tracking Chart

pac4j is an easy and powerful security engine for Java to authenticate users, get their profiles and manage authorizations in order to secure web applications and web services.

It provides a comprehensive set of concepts and components. It is based on Java 8 and available under the Apache 2 license. It is available for most frameworks/tools and supports most authentication/authorization mechanisms.

Available implementations (Get started by clicking on your framework):

Spring Web MVC (Spring Boot)
JEE
Apache Shiro
Spring Security (Spring Boot)
Play 2.x
Vertx

Spark Java
Javalin
Ratpack
Pippo
Undertow
Jooby

CAS server
JAX-RS
Dropwizard
Lagom
Akka HTTP
Apache Knox

Authentication mechanisms:

OAuth (Facebook, Twitter, Google...) - SAML - CAS - OpenID Connect - HTTP - OpenID - Google App Engine - Kerberos (SPNEGO/Negotiate)

LDAP - SQL - JWT - MongoDB - CouchDB - IP address - REST API

Authorization mechanisms:

Roles/permissions - Anonymous/remember-me/(fully) authenticated - Profile type, attribute

CORS - CSRF - Security headers - IP address, HTTP method


Versions

The latest released version is the Maven Central, available in the Maven central repository.
The next version is under development.

Read the documentation for more information.

Need help?

If you need commercial support (premium support or new/specific features), contact us at info@pac4j.org.

If you have any questions, want to contribute or be notified about the new releases and security fixes, please subscribe to the following mailing lists:

Supported by

CAS in the cloud The CAS and pac4j consulting company

Third-party extensions

There exist extensions to pac4j developed by third parties. The extensions provide features not available in the core pac4j distribution. At the moment, the following extension are known:

Main metrics

Overview
Name With Ownerpac4j/pac4j
Primary LanguageJava
Program languageJava (Language Count: 2)
Platform
License:Apache License 2.0
所有者活动
Created At2012-01-28 17:04:12
Pushed At2025-04-24 19:48:36
Last Commit At2025-04-24 19:47:51
Release Count136
Last Release Namepac4j-parent-6.1.2 (Posted on 2025-04-01 08:33:40)
First Release Namescribe-up-1.0.0 (Posted on 2012-02-29 18:34:52)
用户参与
Stargazers Count2.5k
Watchers Count113
Fork Count698
Commits Count6k
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count2558
Pull Requests Open Count2
Pull Requests Close Count220
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private