Search in sources :

Example 1 with PwmServletDefinition

use of password.pwm.http.servlet.PwmServletDefinition in project pwm by pwm-project.

the class ObsoleteUrlFilter method redirectOldUrls.

private ProcessStatus redirectOldUrls(final PwmRequest pwmRequest) throws PwmUnrecoverableException, IOException {
    if (pwmRequest == null || pwmRequest.getURL() == null) {
        return ProcessStatus.Continue;
    }
    final PwmURL pwmURL = pwmRequest.getURL();
    if (pwmURL.isResourceURL() || pwmURL.isCommandServletURL()) {
        return ProcessStatus.Continue;
    }
    if (pwmRequest.getMethod() != HttpMethod.GET) {
        return ProcessStatus.Continue;
    }
    if (!pwmRequest.readParametersAsMap().isEmpty()) {
        return ProcessStatus.Continue;
    }
    final String requestUrl = pwmRequest.getURLwithoutQueryString();
    final String requestServletUrl = requestUrl.substring(pwmRequest.getContextPath().length(), requestUrl.length());
    for (final PwmServletDefinition pwmServletDefinition : PwmServletDefinition.values()) {
        boolean match = false;
        for (final String patternUrl : pwmServletDefinition.urlPatterns()) {
            if (patternUrl.equals(requestServletUrl)) {
                match = true;
                break;
            }
        }
        if (match) {
            if (!pwmServletDefinition.servletUrl().equals(requestServletUrl)) {
                LOGGER.debug(pwmRequest, "obsolete url of '" + requestServletUrl + "' detected, redirecting to canonical URL of '" + pwmServletDefinition.servletUrl() + "'");
                StatisticsManager.incrementStat(pwmRequest, Statistic.OBSOLETE_URL_REQUESTS);
                pwmRequest.sendRedirect(pwmServletDefinition);
                return ProcessStatus.Halt;
            }
        }
    }
    return ProcessStatus.Continue;
}
Also used : PwmURL(password.pwm.http.PwmURL) PwmServletDefinition(password.pwm.http.servlet.PwmServletDefinition)

Aggregations

PwmURL (password.pwm.http.PwmURL)1 PwmServletDefinition (password.pwm.http.servlet.PwmServletDefinition)1