<commit_before><p align="center">
  <img src="https://pac4j.github.io/pac4j/img/logo.png" width="300" />
</p>

### `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.

It provides a comprehensive set of [**concepts and components**](http://www.pac4j.org/docs/main-concepts-and-components.html). 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*):

[J2E](https://github.com/pac4j/j2e-pac4j) &bull; [Spring Web MVC (Spring Boot)](https://github.com/pac4j/spring-webmvc-pac4j) &bull; [Spring Security (Spring Boot)](https://github.com/pac4j/spring-security-pac4j) &bull; [Apache Shiro](https://github.com/bujiio/buji-pac4j)

[Play 2.x](https://github.com/pac4j/play-pac4j) &bull; [Vertx](https://github.com/pac4j/vertx-pac4j) &bull; [Spark Java](https://github.com/pac4j/spark-pac4j) &bull; [Ratpack](http://ratpack.io/manual/current/pac4j.html#pac4j) &bull; [Undertow](https://github.com/pac4j/undertow-pac4j)

[CAS server](https://apereo.github.io/cas/4.2.x/integration/Delegate-Authentication.html) &bull; [JAX-RS](https://github.com/pac4j/jax-rs-pac4j) &bull; [Dropwizard](https://github.com/evnm/dropwizard-pac4j) &bull; [Apache Knox](http://knox.apache.org/books/knox-0-9-0/user-guide.html#Pac4j+Provider+-+CAS+/+OAuth+/+SAML+/+OpenID+Connect) &bull; [Jooby](http://jooby.org/doc/pac4j)

## Authentication mechanisms:

[OAuth (Facebook, Twitter, Google...)](http://www.pac4j.org/docs/clients/oauth.html) - [SAML](http://www.pac4j.org/docs/clients/saml.html) - [CAS](http://www.pac4j.org/docs/clients/cas.html) - [OpenID Connect](http://www.pac4j.org/docs/clients/openid-connect.html) - [HTTP](http://www.pac4j.org/docs/clients/http.html) - [OpenID](http://www.pac4j.org/docs/clients/openid.html) - [Google App Engine](http://www.pac4j.org/docs/clients/google-app-engine.html) - [Kerberos (SPNEGO/Negotiate)]()

[LDAP](http://www.pac4j.org/docs/authenticators/ldap.html) - [SQL](http://www.pac4j.org/docs/authenticators/sql.html) - [JWT](http://www.pac4j.org/docs/authenticators/jwt.html) - [MongoDB](http://www.pac4j.org/docs/authenticators/mongodb.html) - [CouchDB](http://www.pac4j.org/docs/authenticators/couchdb.html) - [Stormpath](http://www.pac4j.org/docs/authenticators/stormpath.html) - [IP address](http://www.pac4j.org/docs/authenticators/ip.html)

## Authorization mechanisms:

[Roles / permissions](http://www.pac4j.org/docs/authorizers/profile-authorizers.html#roles--permissions) - [Anonymous / remember-me / (fully) authenticated](http://www.pac4j.org/docs/authorizers/profile-authorizers.html#authentication-levels) - [Profile type, attribute](http://www.pac4j.org/docs/authorizers/profile-authorizers.html#others)

[CORS](http://www.pac4j.org/docs/authorizers/web-authorizers.html#cors) - [CSRF](http://www.pac4j.org/docs/authorizers/web-authorizers.html#csrf) - [Security headers](http://www.pac4j.org/docs/authorizers/web-authorizers.html#security-headers) - [IP address, HTTP method](http://www.pac4j.org/docs/authorizers/web-authorizers.html#others)

---

## Versions

The version **2.1.0-SNAPSHOT** is under development. Maven artifacts are built via Travis: [![Build Status](https://travis-ci.org/pac4j/pac4j.png?branch=master)](https://travis-ci.org/pac4j/pac4j) and available in the [Sonatype snapshots repository](https://oss.sonatype.org/content/repositories/snapshots/org/pac4j).
<commit_msg>Update link to Kerberos docs<commit_after><p align="center">
  <img src="https://pac4j.github.io/pac4j/img/logo.png" width="300" />
</p>

### `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.

It provides a comprehensive set of [**concepts and components**](http://www.pac4j.org/docs/main-concepts-and-components.html). 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*):

[J2E](https://github.com/pac4j/j2e-pac4j) &bull; [Spring Web MVC (Spring Boot)](https://github.com/pac4j/spring-webmvc-pac4j) &bull; [Spring Security (Spring Boot)](https://github.com/pac4j/spring-security-pac4j) &bull; [Apache Shiro](https://github.com/bujiio/buji-pac4j)

[Play 2.x](https://github.com/pac4j/play-pac4j) &bull; [Vertx](https://github.com/pac4j/vertx-pac4j) &bull; [Spark Java](https://github.com/pac4j/spark-pac4j) &bull; [Ratpack](http://ratpack.io/manual/current/pac4j.html#pac4j) &bull; [Undertow](https://github.com/pac4j/undertow-pac4j)

[CAS server](https://apereo.github.io/cas/4.2.x/integration/Delegate-Authentication.html) &bull; [JAX-RS](https://github.com/pac4j/jax-rs-pac4j) &bull; [Dropwizard](https://github.com/evnm/dropwizard-pac4j) &bull; [Apache Knox](http://knox.apache.org/books/knox-0-9-0/user-guide.html#Pac4j+Provider+-+CAS+/+OAuth+/+SAML+/+OpenID+Connect) &bull; [Jooby](http://jooby.org/doc/pac4j)

## Authentication mechanisms:

[OAuth (Facebook, Twitter, Google...)](http://www.pac4j.org/docs/clients/oauth.html) - [SAML](http://www.pac4j.org/docs/clients/saml.html) - [CAS](http://www.pac4j.org/docs/clients/cas.html) - [OpenID Connect](http://www.pac4j.org/docs/clients/openid-connect.html) - [HTTP](http://www.pac4j.org/docs/clients/http.html) - [OpenID](http://www.pac4j.org/docs/clients/openid.html) - [Google App Engine](http://www.pac4j.org/docs/clients/google-app-engine.html) - [Kerberos (SPNEGO/Negotiate)](http://www.pac4j.org/docs/clients/kerberos.html)

[LDAP](http://www.pac4j.org/docs/authenticators/ldap.html) - [SQL](http://www.pac4j.org/docs/authenticators/sql.html) - [JWT](http://www.pac4j.org/docs/authenticators/jwt.html) - [MongoDB](http://www.pac4j.org/docs/authenticators/mongodb.html) - [CouchDB](http://www.pac4j.org/docs/authenticators/couchdb.html) - [Stormpath](http://www.pac4j.org/docs/authenticators/stormpath.html) - [IP address](http://www.pac4j.org/docs/authenticators/ip.html)

## Authorization mechanisms:

[Roles / permissions](http://www.pac4j.org/docs/authorizers/profile-authorizers.html#roles--permissions) - [Anonymous / remember-me / (fully) authenticated](http://www.pac4j.org/docs/authorizers/profile-authorizers.html#authentication-levels) - [Profile type, attribute](http://www.pac4j.org/docs/authorizers/profile-authorizers.html#others)

[CORS](http://www.pac4j.org/docs/authorizers/web-authorizers.html#cors) - [CSRF](http://www.pac4j.org/docs/authorizers/web-authorizers.html#csrf) - [Security headers](http://www.pac4j.org/docs/authorizers/web-authorizers.html#security-headers) - [IP address, HTTP method](http://www.pac4j.org/docs/authorizers/web-authorizers.html#others)

---

## Versions

The version **2.1.0-SNAPSHOT** is under development. Maven artifacts are built via Travis: [![Build Status](https://travis-ci.org/pac4j/pac4j.png?branch=master)](https://travis-ci.org/pac4j/pac4j) and available in the [Sonatype snapshots repository](https://oss.sonatype.org/content/repositories/snapshots/org/pac4j).

{'fraction_non_alphanumeric': 0.1875340971085652, 'fraction_numerical': 0.01868521549372613, 'mean_word_length': 5.105745212323064, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 30, 'lorem ipsum': 0, 'www.': 45, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5668671', 'n_tokens_mistral': 2868, 'n_tokens_neox': 2642, 'n_words': 360}