CAS 5.0.x Integration w/ Apache ZooKeeper


Contributed Content
Giovanni Morelli (Email: giannimorell at gmail.com, Github: @GiovanniMorelli) was kind enough to share this guide.

I have created a cas-server-core-configuration-cloud-zookeeper module for CAS 5.0.4 based on cas-server-core-configuration-cloud-mongo When CAS is started, it reads all properties under zookeeper’s path: /cas/config/cas without the need to configure cas.properties.

The project source code is available here.

Configuration

  • Add parameter cas.spring.cloud.zookeeper.uri=localhost:2181 in bootstrap.properties
  • Add configurations on Zookeeper. Example: cas.server.name: https://localhost:9327
  • Start CAS.

Build

Download the codebase for CAS 5.0.4 first and add the project source code into the core directory.

Make the following changes:

  • settings.gradle (Root project)
    • Add include "core:cas-server-core-configuration-cloud-zookeeper"
  • gradle.properties (Root project)
    • Update version zookeeper : zookeeperVersion=3.4.10
    • Add springCloudZookeeperVersion=1.0.4.RELEASE
  • build.gradle (into project cas-server-core-configuration-cloud-zookeeper)
description = "Apereo CAS Core Configuration - Zookeeper"

dependencies {
  compile libraries.springboot
  compile libraries.spring
  compile libraries.springcloud
  compile libraries.zookeeper
}

Classes used in the ZooKeeper project:

/cas-server-core-configuration-cloud-zookeeper/src/main/java/org/apereo/cas/ZookeeperPropertySource.java
/cas-server-core-configuration-cloud-zookeeper/src/main/java/org/apereo/cas/ZookeeperPropertySourceLocator.java
/cas-server-core-configuration-cloud-zookeeper/src/main/java/org/apereo/cas/config/ZookeeperCloudConfigBootstrapConfiguration.java

Build the codebase with gradlew clean build --parallel -x test -x javadoc -x check.

Overlay

Add this configuration in pom.xml:

<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-core-configuration-cloud-zookeeper</artifactId>
    <version>${cas.version}</version>
</dependency>

TODO

  • When you add a new configuration to Zookeeper, reload the configuration property automatically in CAS.

Related Posts

CAS Release Notes Moved

CAS Release Notes are moved to the CAS site.

CAS 6.2.0 RC5 Feature Release

...in which I present an overview of CAS 6.2.0 RC5 release.

CAS 6.2.0 RC4 Feature Release

...in which I present an overview of CAS 6.2.0 RC4 release.

CAS 6.2.0 RC3 Feature Release

...in which I present an overview of CAS 6.2.0 RC3 release.

Apereo CAS - Bootiful CAS Client

Easy to use CAS Client

CAS Vulnerability Disclosure

Disclosure of a security issue with the CAS software.

Checking Out Pull Requests Locally

Check out GitHub pull requests as local branches using a simple bash function.

CAS 6.2.0 RC2 Feature Release

...in which I present an overview of CAS 6.2.0 RC2 release.

Apereo CAS - Authentication Handler Resolution

Learn how to resolve and select authentication handlers based on configurable and flexible filtering criteria.

CAS Vulnerability Disclosure

Disclosure of a security issue with the CAS software.