ATS Global
Liferay DXP · Spring Boot · Integration

Liferay and Spring Boot, each doing what it does best

Liferay DXP is very good at pages, content, users, permissions and approval workflow. Spring Boot is very good at business logic, heavy processing and talking to the systems behind a portal. Most of our Liferay platforms use both — and the work that decides whether they stay fast, secure and upgradeable is how the two are joined.

Appistoki logo
Capgemini logo
Careedge Global logo
CES logo
Cignex logo
EngineersMinds logo
Fulcrum logo
IGT Solutions logo
InfoBeans logo
ITC logo
Knowarth logo
Larsen & Toubro logo
Lister logo
Ness logo
NetSol logo
PodEngine logo
Raising logo
Sharp logo
Triton logo
Wego logo
Wipro logo
Xebia logo
25case studies running Liferay with Spring Boot or Spring MVC
3×data volume absorbed by Bank of Baroda's EWS on Liferay DXP 7.4 and Spring Boot services
45%better sign-in conversion once CAS single sign-on removed separate logins (Conscious Connects)
1,000+publisher accounts onboarded in the first year on Triton Digital's portal

What we integrate

Six parts of a Liferay and Spring Boot platform

Our Liferay DXP and Java engineers work on these projects as one team, so the portal and the services behind it are designed together rather than negotiated across a handover — on the same engineering rules as our Spring Boot builds.

Architecture & the split

A clear line between what Liferay owns — pages, content, users, roles, workflow — and what lives in Spring Boot services, written down so the next team knows where new logic goes.

Portlets over Spring Boot APIs

React and Angular portlets and custom elements inside Liferay pages, calling Spring Boot REST APIs — the pattern behind Bank of Baroda's risk dashboards and most of our banking portals.

Microservice client extensions

Spring Boot services registered as Liferay client extensions and triggered by Object actions and workflow, so custom logic runs outside Liferay and survives its upgrades.

Liferay headless APIs from Spring

Spring Boot services that read and write Liferay content, users and Objects through its REST, GraphQL and batch APIs — for synchronisation, imports and reporting.

SSO & token propagation

One sign-in across Liferay and the services behind it — Liferay as the OAuth 2.0 server or a shared identity provider through SAML, OpenID Connect, CAS or Active Directory.

Kaleo workflow & events

Maker-checker approvals in Liferay's Kaleo workflow that hand decisions to Spring Boot services, and events in both directions so neither side polls the other.

Who does what

What belongs in Liferay, and what belongs in a Spring Boot service

Liferay should own what a portal platform is built for: pages and navigation, web content and documents, users, organisations, roles and permissions, forms, Kaleo approval workflow, search across content, and the personalisation that decides who sees what. Rebuilding any of that in custom code is expensive and makes every upgrade harder.

Spring Boot should own the business domain: calculations, rule engines, risk scoring, pricing, data ingestion, batch processing, and integration with core banking, ERP and partner systems. That logic changes on the business's schedule, not Liferay's; it often needs to scale separately from the portal; and keeping it in plain Spring Boot means it can be tested, released and upgraded without touching the portal — and reused by a mobile app or a partner API later.

Not everything needs a separate service. Small, portal-specific logic — a model listener, a custom field rule, a screen's data access — is often better as a Liferay OSGi module or a Liferay Object, because a network hop and a second deployment would cost more than they save. The assessment draws this line component by component and records the reason for each decision.

  • Liferay — pages, content, documents, users, roles, permissions, forms, Kaleo workflow, content search
  • Spring Boot — domain logic, rule engines, data ingestion, batch jobs, integrations with core systems
  • Liferay Objects or OSGi modules — small, portal-specific data and logic that does not need its own service
  • Shared — identity, audit trail and the API contracts between the two, owned by one team

Integration patterns

The four ways we connect Liferay and Spring Boot

Portlets and custom elements calling Spring Boot. The screen lives in Liferay — a React or Angular portlet, or a custom element client extension — and calls Spring Boot REST APIs for its data and actions. Liferay handles the page, the menu, the login and who can see the screen; the Spring Boot service does the work. This is the most common pattern in our banking and government portals, and the one Bank of Baroda's early-warning system uses for its risk dashboards.

Spring Boot as a microservice client extension. On current Liferay DXP releases, a Spring Boot application can be registered with Liferay as a microservice client extension: Liferay calls it when an Object entry is created or changed, or when a workflow reaches a step, and passes an OAuth 2.0 token the service verifies. Custom logic that used to be deployed as OSGi modules inside Liferay now runs and scales outside it, so a Liferay upgrade no longer means recompiling and retesting it — and on Liferay SaaS, client extensions are the way custom code is added at all.

Spring Boot calling Liferay's headless APIs. Where Liferay holds data another system needs, or the other way round, a Spring Boot service reads and writes it through Liferay's REST and GraphQL endpoints — web content, documents, users, and Objects, which get their own endpoints automatically — and uses the batch engine for bulk imports and exports rather than thousands of single calls.

Events in both directions. When something happens in Liferay that a service must react to — a user registered, an Object entry approved — Liferay publishes it through an Object action, a webhook or a model listener, and the service consumes it from a queue. When a service finishes work the user is waiting for, it notifies Liferay, which raises an in-app or email notification. Neither side polls the other, and either can be down briefly without losing work.

Identity

One sign-in across Liferay and every service behind it

Users sign in once, to Liferay, and the services behind it must know who they are and what they may do. We set this up in one of two ways. Liferay can act as the OAuth 2.0 authorisation server: front-end code in a portlet or custom element gets a token for the signed-in user, and each Spring Boot service, configured as an OAuth 2.0 resource server, verifies that token before doing anything. Or Liferay and the services share an external identity provider — Keycloak, Azure AD, an Active Directory federation or CAS — through SAML or OpenID Connect, and trust the same tokens.

Authorisation is enforced in the service as well as on the screen. Hiding a button in Liferay is not security; the Spring Boot service checks the user's roles or scopes on every call, so the API is safe even if someone calls it directly. Service-to-service calls use their own client credentials, never a user's password or a shared admin account. Conscious Connects runs on Liferay DXP, Spring Boot and React behind CAS single sign-on, and removing the separate logins improved sign-in conversion by 45 %; Wipro's employee portal signs its staff in through their existing Active Directory.

Workflow

Kaleo approvals in Liferay, decisions carried out by Spring Boot

Regulated work usually needs a person to approve a change before it takes effect: a risk indicator edited, a threshold changed, a customer record corrected. Liferay's Kaleo workflow is good at this — multi-level maker-checker routing, assignment by role, deadlines, reminders and a full history — so we use it for the approval and let the Spring Boot service carry out the decision once it is approved. The audit trail shows who proposed what, who approved it and when the service applied it.

For Bhutan's central bank, the EWS-Plus platform on Liferay DXP 7.4 uses a multi-level Kaleo maker-checker workflow for indicator data, with Liferay REST service modules for ingestion and a customised Elasticsearch index that returns sub-second search across millions of financial records — and no indicator can be changed without approval. At Bank of Baroda, an RBI-compliant maker-checker workflow runs on the Liferay platform alongside the Spring Boot services that hold the early-warning logic.

Proof

Liferay and Spring Boot platforms we have put into production

Bank of Baroda's early-warning system was a monolith built for one bank's data. After the mergers with Vijaya Bank and Dena Bank we rebuilt it as Spring Boot microservices on Java 11 behind Liferay DXP 7.4, with Angular portlets for the risk officers and data-ingestion pipelines for the merged entities' systems. The platform absorbed three times the data volume, risk-review cycles fell from two days to four hours, and no data was lost in the move.

Triton Digital's publisher portal runs on Liferay DXP 7.2 with Spring Boot behind it, pulling real-time listener data from streaming measurement systems over REST and handing data to advertiser platforms through custom export modules. Publisher self-service cut support tickets by 60 %, automated yield reports save the analytics team more than 200 hours a month, and the portal onboarded more than 1,000 publisher accounts in its first year.

The same split runs through intranets and partner portals: ITC Infotech's intranet on Liferay DXP 7.0 and Spring Boot brings supply-chain, SAP and HR data into role-based dashboards, and Engineers India's document platform on Liferay DXP 7.4, Spring Boot and React moved more than 200,000 engineering documents and cut retrieval time from hours to seconds.

Upgrades

Keeping two release cycles apart, and moving old Spring portlets forward

Liferay now ships quarterly releases, and Spring Boot has its own release train. The integration is designed so each side can upgrade without the other: the services and the portal talk only through versioned REST contracts and events, contract tests run in both pipelines, and custom logic that lives outside Liferay — in Spring Boot services or client extensions — is not recompiled when Liferay changes. Our Spring Boot migration and Liferay upgrade practices plan the two together when both are behind.

Older portals often carry Spring MVC portlets from Liferay 6.x. On current Liferay they can move to PortletMVC4Spring, Liferay's supported way to run Spring Portlet MVC, which keeps the code largely as it is; or the screen can be rebuilt as a React portlet over a Spring Boot or Spring MVC API, which is what we did at ICICI Bank — the business logic stayed in Java 11 and Spring MVC while the screens moved to React portlets, and pages loaded 55 % faster. The assessment recommends one route per portlet.

Timeline & cost

How a Liferay and Spring Boot project is scoped

We start with a fixed-fee assessment of two to three weeks. It maps every screen, workflow and integration, decides component by component what belongs in Liferay and what belongs in a service, chooses the integration pattern and the identity model, and ends in a phased plan with a fixed price for the first release.

Cost is driven by the number of screens and workflows, the number and state of the systems behind the portal, the identity setup, how much existing portal code and data has to move, and the compliance and audit requirements. For new platforms the foundations — identity, API gateway, pipelines and monitoring for both sides — are built with the first release and reused by every later one.

Running Liferay with Java services behind it?

A two- to three-week fixed-fee assessment maps what belongs in Liferay and what belongs in Spring Boot, the integration pattern and the sign-in model — with a fixed price for the first release, whether or not you build it with us.

Book an integration assessment

Our technology stack

What a Liferay and Spring Boot platform runs on

Liferay DXP for the portal, Spring Boot on a long-term-support Java release for the services, React or Angular on the screen, PostgreSQL, Elasticsearch and Redis underneath, and containers on the cloud or data centre you already use.

Liferay DXP logoLiferay DXPJava logoJavaSpring Boot logoSpring BootReact logoReactAngular logoAngularPostgreSQL logoPostgreSQLElasticsearch logoElasticsearchRedis logoRedisDocker logoDockerJenkins logoJenkinsAWS logoAWSAzure logoAzure

How we deliver

From assessment to a portal and services in production

Five phases, each ending in something you can check: a component map, a working sign-in across both sides, screens on real services, verified integrations, and a release your team can run.

STEP 01

Assess

Screens, workflows, integrations and identity mapped; what goes in Liferay and what goes in Spring Boot decided per component; a fixed price for the first release.

STEP 02

Foundations

Single sign-on and token verification across Liferay and the services, API contracts, pipelines and monitoring for both sides.

STEP 03

Build together

Portlets, Objects and workflow in Liferay and the Spring Boot services behind them, built by one team in two-week sprints.

STEP 04

Integrate

Core, ERP and partner systems connected through Spring Boot adapters with retries, circuit breakers and dashboards, then load-tested.

STEP 05

Release & run

Staged rollout, run-books for both sides, and support that keeps Liferay and Spring Boot current without breaking each other.

Case studies

Liferay and Spring Boot in production

Early-warning systems for a bank and a central bank, a publisher portal and an event platform — each with Liferay in front, Spring Boot behind, and the outcome the client measured.

All case studies
Public Sector Banking

Bank of Baroda — EWS Migration

Early Warning System Migration & Enhancement for Public Sector Bank. ATS led the complete migration to a Spring Boot + Angular architecture on Liferay DXP 7.4, introducing Angular portlets for dynamic UI, a multi-level maker-checker approval workflow, and predictive analytics modules for real-time financial risk flagging.

Java 11Spring BootAngularLiferay DXP 7.4

Read case study

Central Banking / Financial Regulation

EWS-Plus — Royal Monetary Authority of Bhutan

National Banking Sector Early Warning System for Fraud & Financial Stability Monitoring. ATS built a comprehensive Liferay DXP 7.4 EWS platform featuring Liferay REST service modules for data ingestion, a multi-level Kaleo workflow for indicator data review (maker-checker), custom Elasticsearch integration for real-time indexed search and alerting, an automated notification system (in-app and email), and dynamic Excel reporting.

Liferay DXP 7.4 (Q4 2023)Java 1.8Spring BootGradle

Read case study

Digital Audio Technology

Triton Digital

Digital Audio Streaming Analytics & Publisher Management Portal. ATS delivered a Liferay-based publisher portal with role-based analytics dashboards, automated yield reporting, audience segmentation tools, and integrated advertising management.

Liferay DXP 7.2Spring BootJavaOracle DB

Read case study

Event Technology / Social Platform

Conscious Connects

Event Management & Digital Marketing Social Platform with PayPal Monetisation. ATS architected and built a Liferay DXP + Spring Boot + React platform featuring Central Authentication Service (CAS) for enterprise-grade SSO, PayPal payment gateway integration for paid events, Elasticsearch-powered event discovery, and full social media integration for event promotion.

Liferay DXPSpring BootReact.jsElasticsearch

Read case study

FAQs

Liferay and Spring Boot — questions we are asked first

Can Spring Boot run inside Liferay?+

Not as a Spring Boot application. Liferay runs custom code as OSGi modules, and Spring Boot expects to own its own runtime. Spring Portlet MVC can run inside Liferay through PortletMVC4Spring, but for business logic the usual answer is a separate Spring Boot service that Liferay calls over REST or as a microservice client extension.

Should our business logic go in Liferay modules or a Spring Boot service?+

Domain logic that changes on the business's schedule, needs to scale on its own or will be reused outside the portal belongs in Spring Boot. Small, portal-specific logic — a model listener, a field rule, a screen's data access — is often simpler as a Liferay OSGi module or Object. Our assessment draws the line component by component.

How does a signed-in Liferay user's identity reach the Spring Boot service?+

Either Liferay acts as the OAuth 2.0 authorisation server and the front end passes a user token that the Spring Boot service verifies, or both trust a shared identity provider such as Keycloak, Azure AD, Active Directory or CAS through SAML or OpenID Connect. The service checks roles or scopes on every call rather than relying on what the screen shows.

What are Liferay microservice client extensions, and do they work with Spring Boot?+

They are applications that run outside Liferay and are registered with it, so Liferay can call them — for example when an Object entry changes or a workflow reaches a step — with an OAuth 2.0 token the service verifies. Spring Boot is a natural fit for them. They keep custom logic out of the Liferay runtime, which makes upgrades easier, and on Liferay SaaS they are the way custom code is added.

Can Liferay's Kaleo workflow trigger a Spring Boot service?+

Yes. We use Kaleo for the approval itself — maker-checker levels, assignments, deadlines and history — and call the Spring Boot service when the workflow reaches the step that applies the decision, so the audit trail covers both the approval and the change. Bhutan's central bank and Bank of Baroda both run maker-checker approval in front of their early-warning logic.

What happens to our Spring MVC portlets when we upgrade Liferay?+

They can move to PortletMVC4Spring, Liferay's supported way to run Spring Portlet MVC on current releases, which keeps most of the code; or the screen can be rebuilt as a React portlet over a Spring API, as we did at ICICI Bank, where pages then loaded 55 % faster. The assessment recommends one route per portlet.

Let’s work together

Tell us how your portal is built

Send the Liferay version, what runs behind it and how users sign in — we will come back within a couple of days with the likely integration pattern and a bracket, and a fixed price after the assessment.