Bug 779585 - parsing of pageflow requires internet connection
Summary: parsing of pageflow requires internet connection
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: JBoss Enterprise SOA Platform 5
Classification: JBoss
Component: JBPM - within SOA
Version: 5.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 5.1.0 GA
Assignee: Douglas Palmer
QA Contact:
URL: http://jira.jboss.org/jira/browse/SOA...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-02-18 14:21 UTC by trev
Modified: 2012-07-13 04:18 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of: SOA-1957
Environment:
Last Closed: 2011-11-02 09:46:37 UTC
Type: Bug


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker SOA-1957 0 None None None Never

Description trev 2010-02-18 14:21:01 UTC
++ This bug is a clone of bug 779584 ++

Date of First Response: 2010-04-19 20:49:20
project_key: SOA

jpdlParser has hard coded XSDs for local parsing instead of regular expression or wildcards in the file name of pageflow xsd. This causes problems for the SEAM project

Comment 1 trev 2010-02-18 14:21:29 UTC
Link: Added: This issue depends JBPM-2774


Comment 2 Alejandro Guizar 2010-04-20 00:49:20 UTC
jBPM loads the pageflow-2.0 schema from resource org/jboss/seam/pageflow-2.0.xsd since version 3.2.4, other schema resources can be registered with JpdlParser.addSchemaResource() - see JBPM-1707. The change proposed in http://seamframework.org/Documentation/WhyDoesDeploymentFailWithASAXException does not apply to jBPM 3.2.4 and above since we have abandoned the EntityResolver in favor of the JAXP schema source property. The motivation for this change was that jBPM does not use DTDs.

The schema source property does not lend itself to resolve the pageflow schema resource for an arbitrary version as the entity resolver does. However, the Seam proposed code has a vulnerability: it can be used to access arbitrary resources in the classpath by crafting the systemId.

if (systemId.startsWith(SEAM_NAMESPACE)) {
  String path = "org/jboss/seam/" + systemId.substring(SEAM_NAMESPACE.length());
  inputSource = new InputSource(org.jboss.seam.Seam.class.getResourceAsStream(path));
}

There are several options here.
(a) Have JpdlParser try to load any schema resources named org/jboss/seam/pageflow-2.n.xsd, n >= 0 from the classpath.
(b) Have Seam register pageflow schemas more recent than 2.0 by calling org/jboss/seam/pageflow-2.0.xsd.
(c) Introduce a configuration property jbpm.schema.resources and load only the resources specified there from the classpath. 

Comment 3 (please assign to mrietvel@redhat.com) 2011-11-02 09:38:38 UTC
Doug, 

The corresponding jBPM issue seems to have been fixed by Alejandro. Assigning to you so that you can close it when you want to. 

Thanks


Note You need to log in before you can comment on or make changes to this bug.