--- /dev/null
+urn\:mace\:shibboleth\:1\.0=shibboleth.xsd
+http\://www.w3.org/XML/1998/namespace=xml.xsd
+http\://www.w3.org/2000/09/xmldsig#=xmldsig-core-schema.xsd
+http\://shibboleth.internet2.edu/wayf/alpha-2/wayfconfig.xsd=wayfconfig.xsd
\ No newline at end of file
package edu.internet2.middleware.shibboleth.common;
+import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;
import java.util.StringTokenizer;
-import javax.servlet.ServletContext;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
private static Logger log =
Logger.getLogger(ServletDigester.class.getName());
- private ServletContext context;
public ServletDigester() {
super();
- configure();
- }
-
- public ServletDigester(ServletContext context) {
- super();
- super.setErrorHandler(new PassThruErrorHandler());
- this.context = context;
-
+ setErrorHandler(new PassThruErrorHandler());
}
public ServletDigester(SAXParser parser) {
super(parser);
super.setErrorHandler(new PassThruErrorHandler());
- configure();
}
public ServletDigester(XMLReader reader) {
super(reader);
super.setErrorHandler(new PassThruErrorHandler());
- configure();
}
/**
public InputSource resolveEntity(String publicId, String systemId)
throws SAXException {
log.debug("Resolving entity for System ID: " + systemId);
- if (context != null && systemId != null) {
+ if (systemId != null) {
StringTokenizer tokenString = new StringTokenizer(systemId, "/");
String xsdFile = "";
while (tokenString.hasMoreTokens()) {
xsdFile = tokenString.nextToken();
}
if (xsdFile.endsWith(".xsd")) {
- InputStream stream =
- context.getResourceAsStream(
- "/WEB-INF/classes/schemas/" + xsdFile);
+ InputStream stream;
+ try {
+ stream =
+ new ShibResource(
+ "/schemas/" + xsdFile, this.getClass()).getInputStream();
+ } catch (IOException ioe) {
+ log.error("Error loading schema: " + xsdFile + ": " + ioe);
+ return null;
+ }
if (stream != null) {
return new InputSource(stream);
}
if (validating) {
Properties schemaProps = new Properties();
- schemaProps.load(
- context.getResourceAsStream(
- "/WEB-INF/conf/schemas.properties"));
+ schemaProps.load(new ShibResource(
+ "/conf/schemas.properties",
+ this.getClass()).getInputStream());
String schemaLocations = "";
Enumeration schemas = schemaProps.propertyNames();
while (schemas.hasMoreElements()) {
package edu.internet2.middleware.shibboleth.wayf;
-import javax.servlet.ServletContext;
import javax.xml.parsers.SAXParser;
import org.xml.sax.XMLReader;
/**
* Constructor for OriginSitesDigester.
- * @param context
- */
- public OriginSitesDigester(ServletContext context) {
- super(context);
- }
-
- /**
- * Constructor for OriginSitesDigester.
* @param parser
*/
public OriginSitesDigester(SAXParser parser) {
package edu.internet2.middleware.shibboleth.wayf;
-import javax.servlet.ServletContext;
import javax.xml.parsers.SAXParser;
import org.xml.sax.XMLReader;
configure();
}
- public WayfConfigDigester(ServletContext context) {
- super(context);
- }
-
public WayfConfigDigester(XMLReader reader) {
super(reader);
configure();
import org.apache.log4j.Logger;
import org.xml.sax.SAXException;
+import edu.internet2.middleware.shibboleth.common.ShibResource;
+
/**
* A servlet implementation of the Shibboleth WAYF service. Allows a browser user to
* select from among a group of origin sites. User selection is optionally cached
* Populates WayfConfig and WayfOrigins objects from file contents.
*/
private void configure() throws UnavailableException {
-
- InputStream is = getServletContext().getResourceAsStream(wayfConfigFileLocation);
- WayfConfigDigester digester = new WayfConfigDigester(getServletContext());
- InputStream siteIs = getServletContext().getResourceAsStream(siteConfigFileLocation);
- OriginSitesDigester siteDigester = new OriginSitesDigester(getServletContext());
-
try {
+ InputStream is = new ShibResource(wayfConfigFileLocation, this.getClass()).getInputStream();
+ WayfConfigDigester digester = new WayfConfigDigester();
digester.setValidating(true);
+ System.err.println(is);
config = (WayfConfig) digester.parse(is);
} catch (SAXException se) {
}
try {
+ InputStream siteIs = getServletContext().getResourceAsStream(siteConfigFileLocation);
+ OriginSitesDigester siteDigester = new OriginSitesDigester();
siteDigester.setValidating(true);
originConfig = (WayfOrigins) siteDigester.parse(siteIs);
wayfConfigFileLocation = getServletConfig().getInitParameter("WAYFConfigFileLocation");
if (wayfConfigFileLocation == null) {
log.warn("No WAYFConfigFileLocation parameter found... using default location.");
- wayfConfigFileLocation = "/WEB-INF/conf/wayfconfig.xml";
+ wayfConfigFileLocation = "/conf/wayfconfig.xml";
}
siteConfigFileLocation = getServletConfig().getInitParameter("SiteConfigFileLocation");
if (siteConfigFileLocation == null) {
log.warn("No SiteonfigFileLocation parameter found... using default location.");
- siteConfigFileLocation = "/WEB-INF/conf/sites.xml";
+ siteConfigFileLocation = "/sites.xml";
}
}
+++ /dev/null
-urn\:mace\:shibboleth\:1\.0=shibboleth.xsd
-http\://www.w3.org/XML/1998/namespace=xml.xsd
-http\://www.w3.org/2000/09/xmldsig#=xmldsig-core-schema.xsd
\ No newline at end of file