An open API service indexing awesome lists of open source software.

https://github.com/premium-minds/flowable-keycloak

Library to replace Flowable IDM with Keycloak integration
https://github.com/premium-minds/flowable-keycloak

flowable hacktoberfest keycloak

Last synced: 5 months ago
JSON representation

Library to replace Flowable IDM with Keycloak integration

Awesome Lists containing this project

README

          

# Flowable Keycloak integration library

This library allows to replace Flowable IDM with Keycloak integration (through OpenID Connect) to the
Flowable Apps (https://flowable.com/open-source/docs/bpmn/ch14-Applications/).

## Maven project
![Maven Central](https://img.shields.io/maven-central/v/com.premiumminds.flowable/flowable-keycloak)

Add the following maven dependency to your project `pom.xml`:

```xml

com.premiumminds.flowable
flowable-keycloak
1.6

```
Check out [sonatype repository](https://oss.sonatype.org/index.html#nexus-search;quick~flowable-keycloak) for latest snapshots and releases.

## Example usage

This example works for the flowable-ui-* projects in the flowable repository:

* [Flowable UI Admin](https://github.com/flowable/flowable-engine/tree/master/modules/flowable-ui-admin)
* [Flowable UI Modeler](https://github.com/flowable/flowable-engine/tree/master/modules/flowable-ui-modeler)
* [Flowable UI Task](https://github.com/flowable/flowable-engine/tree/master/modules/flowable-ui-task)

### Changes in the project

Add the `flowable-keycloak` library to the POM of the `flowable-ui-*-conf` project.

Changes in the `SecurityConfiguration` class in the `flowable-ui-*-conf` project:

* Replace the class `FlowableCookieFilterRegistrationBean` with `KeycloakCookieFilterRegistrationBean`

### Configurations

This library reads the following configurations:

```
keycloak.url =
keycloak.realm =
keycloak.issuer-url =
keycloak.client.client-id =
keycloak.client.client-secret =
keycloak.client.scope = openid roles
keycloak.client.redirect-uri = ${flowable.common.app.redirect-on-auth-success}/callback
keycloak.connect-timeout = 10000
keycloak.read-timeout = 10000
```

For testing, you can add this configurations to the file
`src/main/resources/flowable-default.properties` in the "flowable-ui-*-app" project.

### Keycloak roles

The library will add the client roles as flowable priviledges.

Flowable uses the following priviledges:

* `access-modeler`
* `access-rest-api`
* `access-admin`
* `access-task`

So you should have this as client roles in keycloak instance.

## Continuous Integration

[![Build Status](https://travis-ci.com/premium-minds/flowable-keycloak.png?branch=master)](https://travis-ci.com/github/premium-minds/flowable-keycloak)

CI is hosted by [travis-ci.com](https://travis-ci.com/)

## Licence

Copyright (C) 2020 [Premium Minds](https://www.premium-minds.com/)

Licensed under the [GNU Lesser General Public Licence](https://www.gnu.org/licenses/lgpl.html)