docs: public boolean isSecureLink(CmsObject cms, String vfsName, boolean fromSecure) {
  
          if (!cms.getRequestContext().getCurrentProject().isOnlineProject()) {
              return false;
          }
  
          String cacheKey = OpenCms.getStaticExportManager().getCacheKey(cms.getRequestContext().getSiteRoot(), vfsName);
          String secureResource = OpenCms.getStaticExportManager().getCacheSecureLinks().get(cacheKey);
          if (secureResource == null) {
              CmsObject cmsForReadingProperties = cms;
              try {
                  // the link target resource may not be readable by the current user, so we use a CmsObject with admin permissions
                  // to read the "secure" property
                  CmsObject adminCms = OpenCms.initCmsObject(m_adminCms);
                  adminCms.getRequestContext().setSiteRoot(cms.getRequestContext().getSiteRoot());
                  adminCms.getRequestContext().setCurrentProject(cms.getRequestContext().getCurrentProject());
                  adminCms.getRequestContext().setRequestTime(cms.getRequestContext().getRequestTime());
                  cmsForReadingProperties = adminCms;
              } catch (Exception e) {
                  LOG.error("Could not initialize CmsObject in isSecureLink:" + e.getLocalizedMessage(), e);
              }
              try {
                  secureResource = cmsForReadingProperties.readPropertyObject(
                      vfsName,
                      CmsPropertyDefinition.PROPERTY_SECURE,
                      true).getValue();
                  if (CmsStringUtil.isEmptyOrWhitespaceOnly(secureResource)) {
                      secureResource = "false";
                  }
                  // only cache result if read was successfull
                  OpenCms.getStaticExportManager().getCacheSecureLinks().put(cacheKey, secureResource);
              } catch (CmsVfsResourceNotFoundException e) {
                  secureResource = SECURE_PROPERTY_VALUE_BOTH;
                  OpenCms.getStaticExportManager().getCacheSecureLinks().put(cacheKey, secureResource);
              } catch (Exception e) {
                  // no secure link required (probably security issues, e.g. no access for current user)
                  // however other users may be allowed to read the resource, so the result can't be cached
                  return false;
              }
          }
          return Boolean.parseBoolean(secureResource)
              || (fromSecure && SECURE_PROPERTY_VALUE_BOTH.equals(secureResource));
      }