CSRFUtil.java 1.75 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  javax.servlet.http.HttpServletRequest
 */
package com.day.crx.explorer.impl.util;

import java.net.MalformedURLException;
import java.net.URL;
import javax.servlet.http.HttpServletRequest;

public class CSRFUtil {
    public static boolean testReferer(HttpServletRequest request, String[] allowedPaths, boolean testPort) {
        boolean testPassed;
        block5 : {
            testPassed = false;
            if (request != null && request.getHeader("Referer") != null) {
                try {
                    int refererPort;
                    URL referer = new URL(request.getHeader("Referer"));
                    int n = refererPort = referer.getPort() == -1 ? referer.getDefaultPort() : referer.getPort();
                    if (!referer.getHost().equals(request.getServerName()) || testPort && refererPort != request.getServerPort()) break block5;
                    if (allowedPaths == null || allowedPaths.length == 0) {
                        testPassed = true;
                        break block5;
                    }
                    for (String allowedPath : allowedPaths) {
                        allowedPath = request.getContextPath() + allowedPath;
                        if (!allowedPath.equals(referer.getPath())) continue;
                        testPassed = true;
                        break;
                    }
                }
                catch (MalformedURLException e) {
                    // empty catch block
                }
            }
        }
        return testPassed;
    }

    public static boolean testReferer(HttpServletRequest request, String[] allowedPaths) {
        return CSRFUtil.testReferer(request, allowedPaths, false);
    }
}