/**
   * Returns true if one of the following conditions is matching:<br>
   * 1) the landing page is requested and defined as public <br>
   * 2) the requested URL matches the public URL-pattern
   */
  boolean isPublicAccess(AuthorizationRequestData rdo, HttpServletRequest request) {

    // first, check if landing page is public
    if (rdo.isLandingPage()) {
      LandingpageConfigurationService service = lookupLandingpageConfigurationService(request);
      try {
        LandingpageType type = service.loadLandingpageType(rdo.getMarketplaceId());
        return type.isDefault();
      } catch (Exception e) {
        return false;
      }
    }

    // second, check url pattern of request
    return rdo.isPublicURL(publicUrlPattern);
  }