in src/main/java/org/apache/sling/engine/impl/SlingJakartaHttpServletRequestImpl.java [402:433]
public Object getAttribute(final String name) {
final DispatchingInfo dispatchingInfo = this.requestData.getDispatchingInfo();
if (dispatchingInfo != null && dispatchingInfo.getType() == DispatcherType.INCLUDE) {
if (SlingConstants.ATTR_REQUEST_CONTENT.equals(name)) {
return dispatchingInfo.getRequestContent();
} else if (SlingConstants.ATTR_REQUEST_SERVLET.equals(name)) {
return JakartaToJavaxServletWrapper.toJavaxServlet(dispatchingInfo.getRequestServlet());
} else if (SlingConstants.ATTR_REQUEST_JAKARTA_SERVLET.equals(name)) {
return dispatchingInfo.getRequestServlet();
} else if (SlingConstants.ATTR_REQUEST_PATH_INFO.equals(name)) {
return dispatchingInfo.getRequestPathInfo();
} else if (INCLUDE_CONTEXT_PATH.equals(name)) {
return dispatchingInfo.getContextPath();
} else if (INCLUDE_PATH_INFO.equals(name)) {
return dispatchingInfo.getPathInfo();
} else if (INCLUDE_QUERY_STRING.equals(name)) {
return dispatchingInfo.getQueryString();
} else if (INCLUDE_REQUEST_URI.equals(name)) {
return dispatchingInfo.getRequestUri();
} else if (INCLUDE_SERVLET_PATH.equals(name)) {
return dispatchingInfo.getServletPath();
} else if (FORWARD_ATTRIBUTES.contains(name)) {
// include might be contained within a forward, allow forward attributes
return super.getAttribute(name);
}
}
// block all special attributes
if (INCLUDE_ATTRIBUTES.contains(name) || FORWARD_ATTRIBUTES.contains(name)) {
return null;
}
return super.getAttribute(name);
}