XFAUtils.java 3.44 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  org.apache.commons.lang3.StringUtils
 *  org.apache.sling.api.SlingHttpServletRequest
 *  org.apache.sling.api.resource.Resource
 *  org.apache.sling.api.resource.ResourceResolver
 *  org.apache.sling.api.resource.ValueMap
 */
package com.adobe.forms.common.utils;

import org.apache.commons.lang3.StringUtils;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;

public class XFAUtils {
    public static String encodeScriptableTags(String str) {
        String result = str;
        if (StringUtils.isNotBlank((CharSequence)str)) {
            result = result.replaceAll("(?i)<([\\\\]*/?script[^>]*)>", "&lt;$1&gt;");
            result = result.replaceAll("(?i)<([\\\\]*/?img[^>]*)>", "&lt;$1&gt;");
            result = result.replaceAll("(?i)<([\\\\]*/?video[^>]*)>", "&lt;$1&gt;");
            result = result.replaceAll("(?i)<([\\\\]*/?audio[^>]*)>", "&lt;$1&gt;");
        }
        return result;
    }

    public static boolean isResourceFormsManager(Resource resource) {
        if (resource != null) {
            String resourceType = resource.getResourceType();
            return StringUtils.isNotBlank((CharSequence)resourceType) && resourceType.equals("fd/fm/xfaforms/render");
        }
        return false;
    }

    public static String getRequestAttribute(SlingHttpServletRequest slingRequest, String param) {
        Object valObj = slingRequest.getAttribute("submitUrl");
        String value = "";
        if (valObj != null && valObj instanceof String) {
            value = (String)valObj;
        }
        return value;
    }

    public static Resource getFormsManagerResource(SlingHttpServletRequest slingRequest, String contentRoot, String template) {
        Resource formManagerResource = null;
        if (StringUtils.isNotBlank((CharSequence)contentRoot) && StringUtils.isNotBlank((CharSequence)template)) {
            String resourcePath = contentRoot.replace("crx://", "") + "/" + template;
            Resource resource = slingRequest.getResourceResolver().getResource(resourcePath);
            if (resource != null) {
                formManagerResource = resource.getChild("jcr:content");
            }
        }
        return formManagerResource;
    }

    public static String getSubmitUrl(SlingHttpServletRequest slingRequest, String contentRoot, String template) {
        String formsManagerSubmitUrl = null;
        Resource formManagerResource = XFAUtils.getFormsManagerResource(slingRequest, contentRoot, template);
        String submitUrlParameter = slingRequest.getParameter("submitUrl");
        String submitUrlAttribute = XFAUtils.getRequestAttribute(slingRequest, "submitUrl");
        String submitUrl = "";
        if (XFAUtils.isResourceFormsManager(formManagerResource)) {
            ValueMap managerProperties = (ValueMap)formManagerResource.getChild("metadata").adaptTo(ValueMap.class);
            formsManagerSubmitUrl = (String)managerProperties.get("submitUrl", (Object)"");
        }
        if (StringUtils.isNotBlank((CharSequence)submitUrlAttribute) && !submitUrlAttribute.equals(formsManagerSubmitUrl)) {
            submitUrl = submitUrlAttribute;
        } else if (StringUtils.isNotBlank((CharSequence)submitUrlParameter)) {
            submitUrl = submitUrlParameter;
        }
        return submitUrl;
    }
}