31 lines
2 KiB
Text
31 lines
2 KiB
Text
[[_jaas_adapter]]
|
|
=== JAAS plugin
|
|
|
|
It's generally not needed to use JAAS for most of the applications, especially if they are HTTP based, and you should most likely choose one of our other adapters.
|
|
However, some applications and systems may still rely on pure legacy JAAS solution.
|
|
{{book.project.title}} provides two login modules to help in these situations.
|
|
|
|
The provided login modules are:
|
|
|
|
org.keycloak.adapters.jaas.DirectAccessGrantsLoginModule::
|
|
This login module allows to authenticate with username/password from {{book.project.title}}.
|
|
It's using <<fake/../../oidc-generic.adoc#_resource_owner_password_credentials_flow,Resource Owner Password Credentials>> flow to validate if the provided
|
|
username/password is valid. It's useful for non-web based systems, which need to rely on JAAS and want to use Keycloak, but can't use the standard browser
|
|
based flows due to their non-web nature. Example of such application could be messaging or SSH.
|
|
|
|
org.keycloak.adapters.jaas.BearerTokenLoginModule::
|
|
This login module allows to authenticate with {{book.project.title}} access token passed to it through CallbackHandler as password.
|
|
It may be useful for example in case, when you have {{book.project.title}} access token from standard based authentication flow and your web application then
|
|
needs to talk to external non-web based system, which rely on JAAS. For example a messaging system.
|
|
|
|
Both modules use the following configuration properties:
|
|
|
|
keycloak-config-file::
|
|
The location of the `keycloak.json` configuration file. The configuration file can either be located on the filesystem or on the classpath. If it's located
|
|
on the classpath you need to prefix the location with `classpath:` (for example `classpath:/path/keycloak.json`).
|
|
This is _REQUIRED._
|
|
|
|
`role-principal-class`::
|
|
Configure alternative class for Role principals attached to JAAS Subject.
|
|
Default value is `org.keycloak.adapters.jaas.RolePrincipal`. Note: The class is required to have a constructor with a single `String` argument.
|
|
|