[jira] Reopened: (GERONIMO-1480) Cross context include does not set jacc contextID for 2nd web app. (Tomcat only)
[ http://issues.apache.org/jira/browse/GERONIMO-1480?page=all ] Jeff Genender reopened GERONIMO-1480: - Looking into new issue for TGR Cross context include does not set jacc contextID for 2nd web app. (Tomcat only) Key: GERONIMO-1480 URL: http://issues.apache.org/jira/browse/GERONIMO-1480 Project: Geronimo Type: Bug Components: Tomcat Versions: 1.0.1, 1.1 Reporter: David Jencks Assignee: Jeff Genender Priority: Blocker Fix For: 1.1, 1.0.1 If you do a cross context include from web app A to web app B, the jacc contextID fetched from PolicyContext when you evaluate isUserInRole in web app B is the contextID for A, not B. Presumably the cross context dispatch does not go through the PolicyContextValve for B. Here's a thread trace that demonstrates this, with a couple annotations. [EMAIL PROTECTED] daemon prio=5, in group main, status: RUNNING implies():80, GeronimoPolicy.java implies():46, JaasPolicyCoordinator.java implies():189, ProtectionDomain.java checkPermission():254, AccessControlContext.java hasRole():248, TomcatGeronimoRealm.java isUserInRole():2128, Request.java isUserInRole():761, RequestFacade.java isUserInRole():163, HttpServletRequestWrapper.java isUserInRole():163, HttpServletRequestWrapper.java isUserInRole():163, HttpServletRequestWrapper.java isUserInRole():163, HttpServletRequestWrapper.java isUserInRole():265, PortletRequestImpl.java _jspService():46, roles.jsp service():97, HttpJspBase.java service():688, HttpServlet.java service():322, JspServletWrapper.java serviceJspFile():314, JspServlet.java service():264, JspServlet.java service():688, HttpServlet.java internalDoFilter():252, ApplicationFilterChain.java doFilter():173, ApplicationFilterChain.java invoke():672, ApplicationDispatcher.java doInclude():574, ApplicationDispatcher.java include():499, ApplicationDispatcher.java include():72, JetspeedRequestDispatcher.java doView():363, GenericServletPortlet.java doDispatch():250, GenericPortlet.java render():178, GenericPortlet.java render():102, JetspeedPortletInstance.java THIS IS WEB APP B doGet():230, JetspeedContainerServlet.java service():595, HttpServlet.java service():688, HttpServlet.java internalDoFilter():252, ApplicationFilterChain.java doFilter():173, ApplicationFilterChain.java invoke():672, ApplicationDispatcher.java doInclude():574, ApplicationDispatcher.java include():499, ApplicationDispatcher.java THIS IS A INCLUDING B invoke():213, ServletPortletInvoker.java render():125, ServletPortletInvoker.java renderPortlet():119, PortletContainerImpl.java renderPortlet():120, JetspeedPortletContainerWrapper.java execute():120, RenderingJobImpl.java renderNow():110, PortletRendererImpl.java aggregateAndRender():199, PageAggregatorImpl.java aggregateAndRender():182, PageAggregatorImpl.java build():106, PageAggregatorImpl.java invoke():48, AggregatorValve.java invokeNext():166, JetspeedPipeline.java invoke():132, ActionValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():76, ContainerValve.java invokeNext():166, JetspeedPipeline.java invoke():100, DecorationValve.java invokeNext():166, JetspeedPipeline.java invoke():179, ProfilerValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():143, LoginValidationValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():148, PasswordCredentialValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():168, LocalizationValveImpl.java invokeNext():166, JetspeedPipeline.java run():117, AbstractSecurityValve.java doPrivileged():-1, AccessController.java doAsPrivileged():437, Subject.java invoke():111, AbstractSecurityValve.java invokeNext():166, JetspeedPipeline.java invoke():55, PortalURLValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():128, CapabilityValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():145, JetspeedPipeline.java service():231, JetspeedEngine.java THIS IS WEB APP A: doGet():226, JetspeedServlet.java service():595, HttpServlet.java service():688, HttpServlet.java internalDoFilter():252, ApplicationFilterChain.java doFilter():173, ApplicationFilterChain.java
[jira] Reopened: (GERONIMO-1480) Cross context include does not set jacc contextID for 2nd web app. (Tomcat only)
[ http://issues.apache.org/jira/browse/GERONIMO-1480?page=all ] Jeff Genender reopened GERONIMO-1480: - Change fix version Cross context include does not set jacc contextID for 2nd web app. (Tomcat only) Key: GERONIMO-1480 URL: http://issues.apache.org/jira/browse/GERONIMO-1480 Project: Geronimo Type: Bug Components: Tomcat Versions: 1.0.1, 1.1 Reporter: David Jencks Assignee: Jeff Genender Priority: Blocker Fix For: 1.1, 1.0.1 If you do a cross context include from web app A to web app B, the jacc contextID fetched from PolicyContext when you evaluate isUserInRole in web app B is the contextID for A, not B. Presumably the cross context dispatch does not go through the PolicyContextValve for B. Here's a thread trace that demonstrates this, with a couple annotations. [EMAIL PROTECTED] daemon prio=5, in group main, status: RUNNING implies():80, GeronimoPolicy.java implies():46, JaasPolicyCoordinator.java implies():189, ProtectionDomain.java checkPermission():254, AccessControlContext.java hasRole():248, TomcatGeronimoRealm.java isUserInRole():2128, Request.java isUserInRole():761, RequestFacade.java isUserInRole():163, HttpServletRequestWrapper.java isUserInRole():163, HttpServletRequestWrapper.java isUserInRole():163, HttpServletRequestWrapper.java isUserInRole():163, HttpServletRequestWrapper.java isUserInRole():265, PortletRequestImpl.java _jspService():46, roles.jsp service():97, HttpJspBase.java service():688, HttpServlet.java service():322, JspServletWrapper.java serviceJspFile():314, JspServlet.java service():264, JspServlet.java service():688, HttpServlet.java internalDoFilter():252, ApplicationFilterChain.java doFilter():173, ApplicationFilterChain.java invoke():672, ApplicationDispatcher.java doInclude():574, ApplicationDispatcher.java include():499, ApplicationDispatcher.java include():72, JetspeedRequestDispatcher.java doView():363, GenericServletPortlet.java doDispatch():250, GenericPortlet.java render():178, GenericPortlet.java render():102, JetspeedPortletInstance.java THIS IS WEB APP B doGet():230, JetspeedContainerServlet.java service():595, HttpServlet.java service():688, HttpServlet.java internalDoFilter():252, ApplicationFilterChain.java doFilter():173, ApplicationFilterChain.java invoke():672, ApplicationDispatcher.java doInclude():574, ApplicationDispatcher.java include():499, ApplicationDispatcher.java THIS IS A INCLUDING B invoke():213, ServletPortletInvoker.java render():125, ServletPortletInvoker.java renderPortlet():119, PortletContainerImpl.java renderPortlet():120, JetspeedPortletContainerWrapper.java execute():120, RenderingJobImpl.java renderNow():110, PortletRendererImpl.java aggregateAndRender():199, PageAggregatorImpl.java aggregateAndRender():182, PageAggregatorImpl.java build():106, PageAggregatorImpl.java invoke():48, AggregatorValve.java invokeNext():166, JetspeedPipeline.java invoke():132, ActionValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():76, ContainerValve.java invokeNext():166, JetspeedPipeline.java invoke():100, DecorationValve.java invokeNext():166, JetspeedPipeline.java invoke():179, ProfilerValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():143, LoginValidationValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():148, PasswordCredentialValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():168, LocalizationValveImpl.java invokeNext():166, JetspeedPipeline.java run():117, AbstractSecurityValve.java doPrivileged():-1, AccessController.java doAsPrivileged():437, Subject.java invoke():111, AbstractSecurityValve.java invokeNext():166, JetspeedPipeline.java invoke():55, PortalURLValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():128, CapabilityValveImpl.java invokeNext():166, JetspeedPipeline.java invoke():145, JetspeedPipeline.java service():231, JetspeedEngine.java THIS IS WEB APP A: doGet():226, JetspeedServlet.java service():595, HttpServlet.java service():688, HttpServlet.java internalDoFilter():252, ApplicationFilterChain.java doFilter():173, ApplicationFilterChain.java invoke():672,