Legacy Knowledge Base
Published Sep. 10, 2025

Public resources under /o/

Written By

Balázs Létai

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

Legacy Article

You are viewing an article from our legacy "FastTrack" publication program, made available for informational purposes. Articles in this program were published without a requirement for independent editing or verification and are provided"as is" without guarantee.

Before using any information from this article, independently verify its suitability for your situation and project.

Issue

  • Why /o/marketplace-app-manager-web/icon.jsp is public by default?

  • Are there any other out of the box resources publicly available by default?

Environment

  • Liferay DXP any

Resolution

  • The Marketplace module is an out-of-the-box Liferay module. 
  • As long as it remains deployed (e.g. not explicitly undeployed), its endpoints will continue to be publicly accessible.
  • There was a known vulnerability in this module, addressed by LPD-46038
  • To prevent public access to its endpoints, you have three main options:
    • Implement a custom servlet filter for authentication and authorisation
    • Implement firewall rules
    • Apply access control rules at the web server level, for example:

      location ~ ^/o/marketplace-app-manager-web/ {
          deny all;
      }
  • By default, any JSP, static file, or servlet located in a module’s META-INF/resources directory is automatically exposed at the path /o/{servletContextName}/. 
  • These files are out of the box OSGi servlet resources.
  • This means that files under the META-INF/resources folder of a deployed Liferay module are publicly available by default under /o/{module-name}/
  • Examples from built-in modules:
    • /o/fragment-web/resources/resource.jsp
    • /o/frontend-theme-classic/images/logo.png

 

Did this article resolve your issue ?

Legacy Knowledge Base