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 6.1.0 RC1 Feature Release

...in which I present an overview of CAS 6.1.0 RC1 release.

CAS 6.1.x Deployment - WAR Overlays

Learn how to configure and build your own CAS deployment via the WAR overlay method, get rich quickly, stay healthy indefinitely and respect family and friends in a few very easy steps.

Apereo CAS - Have you been pawned?

Learn how Apereo CAS may be configured to check for pawned passwords and warn the user, using the haveibeenpawned.com service

Apereo CAS - OohLala Mobile SAML2 Integration

Learn how to integrate OohLala Mobile with Apereo CAS running as a SAML2 identity provider.

Apereo CAS - Cranium Cafe SAML2 Integration

Learn how to integrate Cranium Cafe with Apereo CAS running as a SAML2 identity provider.

Apereo CAS - eLumen SAML2 Integration

Learn how to integrate eLumen with Apereo CAS running as a SAML2 identity provider.

Apereo CAS - Rave SAML2 Integration

Learn how to integrate Rave with Apereo CAS running as a SAML2 identity provider.

Apereo CAS - HireTouch SAML2 Integration

Learn how to integrate HireTouch with Apereo CAS running as a SAML2 identity provider.

Apereo CAS - Microsoft Office 365 SAML2 Integration

Learn how to integrate Microsoft Office 365 with Apereo CAS running as a SAML2 identity provider.

Apereo CAS - HappyFox SAML2 Integration

Learn how to integrate HappyFox with Apereo CAS running as a SAML2 identity provider.