public EnforcementServiceRequest getInstance(HttpServletRequest servletRequest) {
String servletUrl = ServletUtils.getServletLocation(servletRequest);
String servletPath = servletRequest.getServletPath();
String pathInfo = servletRequest.getPathInfo();
if (targetPathPatternMappingService != null) {
String trimmedPathInfo = servletPath.substring(1, servletPath.length());
PathMapping mapping = targetPathPatternMappingService.match(trimmedPathInfo);
mapping.getTarget();
String recalculatedPathInfo = servletPath.replace("/" + mapping.getPath(), "");
if (servletPath.startsWith("/") && !mapping.getPath().startsWith("/")) {
recalculatedPathInfo = recalculatedPathInfo.replaceFirst("/", "");
}
return new TransparentAuthEnforcementServiceRequest(mapping.getTarget(), recalculatedPathInfo, ServletUtils.buildContextLocation(servletRequest, "/" + mapping.getPath()));
}
return new WSSRequestUrl(servletUrl, servletPath, pathInfo, this);
}