37 Audits
πŸ”‘

License

General Auditor

Detects a Liferay DXP site serving its license activation page

ResilienceMonitoring
30 credits
Per check
~30 seconds
Average runtime
Active
Status

How it works

  1. Select the platform β€” the first stack entry whose vendor is Liferay (any case) and whose product is not Liferay Portal is audited (Liferay Portal, the community edition, has no license). No stack, or no supported platform in it, is INFORMATION (100): nothing is fetched and the run is not charged.

  2. Fetch the probe URL β€” /c/portal/license_activation on the origin of the monitored URL, without following redirects, with 37AuditsBot's user agent, its Web Bot Auth signature and the URL's Basic Auth credentials. HTTP 403, HTTP 429 or a Cloudflare challenge is ERROR (590). A network error, a timeout or any status other than 200 or a redirect is ERROR (500).

  3. Read the answer

    • A redirect (Liferay sends 302 to /c/portal/layout) means the license is valid: SUCCESS (200).

    • 200 with the Liferay DXP Activation sheet (<h1 class="sheet-title">Liferay DXP Activation</h1>, rendered by license_activation.jsp) means the license is expired or the instance is not registered: FAIL (400). The alert on the page, such as This instance is not registered., is quoted in the message.

    • 200 with any other page is SUCCESS (200): the activation page is not served.

What this auditor validates

Every row maps to one checkRule* method and one CheckCode. CheckCode suffixes use status ranges: 100 information, 200 success, 300–399 warning, 400–499 fail, 500–599 error.

CheckCodeStatusWhen it firesRecommendationWhy it matters
37A-LicenseAuditor-100INFORMATIONThe project has no software stack, or the stack names no supported platform; nothing is audited and the run is not charged (the check carries notApplicable: true).Empty stack: add {supported} to the project's software stack to check its license. Other platforms: if the site runs {supported}, add it to the project's software stack to check its license.β€”
37A-LicenseAuditor-400FAILThe probe URL answers HTTP 200 with the platform's license activation page.Deploy a valid {platform} activation key for {host} through the License Manager ({licenseManagerUrl}) or contact Liferay Support; until then "{probeUrl}" shows the activation page instead of redirecting to the site.With an expired or missing license the platform stops serving the site and shows its activation page instead, so visitors see an error instead of your content until the key is renewed.
37A-LicenseAuditor-500ERRORThe probe URL could not be fetched: network error, timeout, or a status other than 200 or a redirect.Make sure "{probeUrl}" is reachable by the auditor so the license can be checked.β€”
37A-LicenseAuditor-200SUCCESSAll rules passed. Message is "{probeUrl}" answered HTTP {status} β†’ "{location}", so the {platform} license is active.β€”β€”
37A-LicenseAuditor-590ERRORThe audited page answered HTTP 403, HTTP 429 or a Cloudflare challenge, so 37AuditsBot was blocked before it could read the page.Allow 37AuditsBot in your firewall or bot protection: allowlist its user agent, or verify its Web Bot Auth signature. See https://www.37audits.com/bot.While 37AuditsBot is blocked this audit cannot look at the site, so problems on it go unreported.

Example messages:

  • 400 β€” "https://www.example.com/c/portal/license_activation" answered HTTP 200 with the Liferay DXP activation page ("This instance is not registered."): the Liferay DXP license is expired or the instance is not registered.

  • 200 β€” "https://www.example.com/c/portal/license_activation" answered HTTP 302 β†’ "https://www.example.com/c/portal/layout", so the Liferay DXP license is active.

Findings carry the same values in data: platform, probeUrl, statusCode, location, pageTitle, activationPage and alert.

Output Documentation

StatusDescriptionTest logic
INFORMATIONThe auditor does not apply to the stackNo stack, or no supported platform in it (100); the run is not charged.
SUCCESSThe license is activeThe probe URL redirects, or answers 200 with a page other than the activation page (200).
FAILThe license is expired or the instance is not registeredThe probe URL answers 200 with the activation page (400).
ERRORThe auditor could not check the licenseThe probe URL could not be fetched (500) or 37AuditsBot was blocked (590).

Risks and Considerations

An expired license takes the whole site down

  • Liferay DXP redirects every page to the activation page once its license expires. Visitors, search engines and integrations all get that page instead of your content, so the impact is a full outage, not a degraded feature.

Check before it happens

  • Liferay license keys have a fixed end date. Run this auditor on a schedule so the first run after the key expires raises the alarm, and renew keys before their end date.

  • The activation page answers HTTP 200, so uptime monitors that only check the status code report the site as up.

The software stack is declared, not detected

  • Only projects whose stack lists Liferay DXP are audited. Add Liferay to the stack when the site runs on it.

  • Only the first Liferay entry of the stack is audited.

What this auditor does not check

  • It does not read the license's end date, so it cannot warn ahead of the expiry.

  • It does not check the cluster-node or developer-connection limits beyond what the activation page reports.

This documentation is built and hosted on Mintlify, a developer documentation platform.

Source: docs.37audits.com

Ready to start auditing?

Add this auditor to your monitoring setup and start identifying issues on your websites today.

Β© 2026 37 Audits. All rights reserved. Audit your websites with confidence.

Supported by

Made with ❀️ in Floripa