pac4j / jax-rs-pac4j

Security library for JAX-RS and Jersey
http://www.pac4j.org
Apache License 2.0
50 stars 20 forks source link
authentication authorization cas facebook java jax-rs jwt ldap login logout mongodb oauth openid-connect saml security social-login sql twitter

The jax-rs-pac4j project is an easy and powerful security library for JAX-RS web applications and web services which supports authentication and authorization, but also logout and advanced features like session fixation and CSRF protection. It's based on the pac4j security engine. It's available under the Apache 2 license.

jax-rs-pac4j JDK pac4j JAX-RS Servlet
version >= 6 11 v5 v3 v5
version >= 5 11 v5 v2 v4
version >= 4 8 v4 v2 v4

Main concepts and components:

1) A client represents an authentication mechanism. It performs the login process and returns a user profile. An indirect client is for UI authentication while a direct client is for web services authentication:

▸ OAuth - SAML - CAS - OpenID Connect - HTTP - Google App Engine - LDAP - SQL - JWT - MongoDB - CouchDB - Kerberos - IP address - Kerberos (SPNEGO) - REST API

2) An authorizer is meant to check authorizations on the authenticated user profile(s) or on the current web context:

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

3) A matcher defines whether the SecurityFilter must be applied and can be used for additional web processing

4) Filters protect resources and map some of them to login processes.

These filters can be directly registered by hand, or instead, the following features can be used.

5) Generic JAX-RS Providers and Features activate the use of some of the filters on the JAX-RS implementation based on various conditions

6) Container/Implementation-specific Providers and Features extend the basic functionality provided by the generic ones

Usage

1) Add the required dependencies

2) Define:

- the security configuration

- the callback configuration, only for web applications

- the logout configuration

3) Apply security

4) Get the authenticated user profiles

Versions

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

See the release notes. Learn more by browsing the pac4j documentation and the jax-rs-pac4j Javadoc.

See the migration guide as well.

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: