15 applications. 5 million lines of code. Time for a proper Spring cleaning.

Zurich
Photo: Wikimedia

AURA

Brief

Full-stack migration of Credit Suisse's central Identity & Access Management system — 15 applications, a central job processing system, and over 5 million lines of code — to Java 21, Spring Boot 3.4, and Docker on OpenShift.

Technology

Java 21, Spring 6.3, Spring Boot 3.4, Jakarta Faces, JoinFaces, Spring Security 6.3, OAuth2, Docker, OpenShift / Kubernetes, Jenkins, Maven.

Legacy JavaServer Faces 2.0 applications were migrated to Jakarta Faces with JoinFaces, while CDI and Apache DeltaSpike were replaced by Spring. WebLogic servers were retired in favor of embedded Tomcat on OpenShift.

15

applications migrated

5M+

lines of code

8 months

March to November 2024

Starting Point

By 2024, AURA had grown to over 15 applications and components, a central job processing system, more than 5 million lines of code, and 1,000+ UI screens. A business-critical system at enormous scale.

Under the hood: Java 8, Spring 4.x, JavaServer Faces 2.0, AngularJS, and WebLogic application servers. A stack that had served its purpose well — but was holding back security, maintainability, and velocity. Time to modernize. Irian got the call.

Screenshot of the AURA access rights management interface on a laptop, showing a list of entitlement codes with scope parameters and status indicators.

Development

We started by unifying the Maven build and dependency structure across all core libraries, then systematically upgraded every component in the Spring and Spring Boot ecosystem to the latest versions. JavaServer Faces 2.0 gave way to Jakarta Faces with JoinFaces. CDI and Apache DeltaSpike were replaced with Spring. The security architecture was rebuilt from the ground up: Spring Security 6.3 with OAuth2 login, in addition to the existing certificate-based authentication.

Deployment infrastructure was migrated from proprietary WebLogic rollout systems to Docker containers on OpenShift / Kubernetes — including load balancer configuration, Jenkins CI/CD integration, and acceptance testing across all environments using an Agile Scrum approach.

Screenshot of the AURA Joiner/Leaver/Mover provisioning queue on an iPad, showing workflow status, SLA tracking, and provisioning steps per employee.

Result

Eight months. Fifteen applications. Five million lines of code. Java 21, Spring Boot 3.4, Jakarta Faces, OAuth2, and OpenShift — all running in production. No lingering legacy. No extended post-launch fire-fighting.

The migration didn't just modernize the stack — it laid the foundation for Credit Suisse's IAM to evolve: faster delivery cycles, a homogeneous codebase, improved security posture, and a deployment pipeline ready for the next decade. Irian provided operational support after go-live, ensuring a stable handoff.

Screenshot of the AURA system audit log on a desktop monitor, showing a filtered event log with timestamps, action types, IP addresses, and severity indicators.

Feeling inspired?

More Projects