Moved WAYF config to CLASSPATH.
authorwassa <wassa@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Wed, 5 Mar 2003 23:51:41 +0000 (23:51 +0000)
committerwassa <wassa@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Wed, 5 Mar 2003 23:51:41 +0000 (23:51 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/trunk@541 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

src/conf/schemas.properties [new file with mode: 0644]
src/conf/wayfconfig.xml [moved from webApplication/WEB-INF/conf/wayfconfig.xml with 100% similarity, mode: 0644]
src/edu/internet2/middleware/shibboleth/common/ServletDigester.java
src/edu/internet2/middleware/shibboleth/wayf/OriginSitesDigester.java
src/edu/internet2/middleware/shibboleth/wayf/WayfConfigDigester.java
src/edu/internet2/middleware/shibboleth/wayf/WayfService.java
webApplication/WEB-INF/conf/schemas.properties [deleted file]

diff --git a/src/conf/schemas.properties b/src/conf/schemas.properties
new file mode 100644 (file)
index 0000000..0c2066e
--- /dev/null
@@ -0,0 +1,4 @@
+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
old mode 100755 (executable)
new mode 100644 (file)
similarity index 100%
rename from webApplication/WEB-INF/conf/wayfconfig.xml
rename to src/conf/wayfconfig.xml
index 3e1d130..2282cff 100755 (executable)
 
 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;
 
@@ -77,29 +77,19 @@ public class ServletDigester extends Digester {
 
        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();
        }
 
        /**
@@ -108,16 +98,22 @@ public class ServletDigester extends Digester {
        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);
                                }
@@ -164,9 +160,9 @@ public class ServletDigester extends Digester {
                                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()) {
index abc9d00..06ad8ed 100755 (executable)
@@ -49,7 +49,6 @@
 
 package edu.internet2.middleware.shibboleth.wayf;
 
-import javax.servlet.ServletContext;
 import javax.xml.parsers.SAXParser;
 
 import org.xml.sax.XMLReader;
@@ -81,14 +80,6 @@ public class OriginSitesDigester extends ServletDigester {
 
        /**
         * Constructor for OriginSitesDigester.
-        * @param context
-        */
-       public OriginSitesDigester(ServletContext context) {
-               super(context);
-       }
-
-       /**
-        * Constructor for OriginSitesDigester.
         * @param parser
         */
        public OriginSitesDigester(SAXParser parser) {
index b068f64..7790bc6 100755 (executable)
@@ -49,7 +49,6 @@
 
 package edu.internet2.middleware.shibboleth.wayf;
 
-import javax.servlet.ServletContext;
 import javax.xml.parsers.SAXParser;
 
 import org.xml.sax.XMLReader;
@@ -80,10 +79,6 @@ public class WayfConfigDigester extends ServletDigester {
                configure();
        }
 
-       public WayfConfigDigester(ServletContext context) {
-               super(context);
-       }
-
        public WayfConfigDigester(XMLReader reader) {
                super(reader);
                configure();
index 020336c..2da9c75 100755 (executable)
@@ -63,6 +63,8 @@ import javax.servlet.http.HttpServletResponse;
 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 
@@ -102,14 +104,11 @@ public class WayfService extends HttpServlet {
         * 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) {
@@ -121,6 +120,8 @@ public class WayfService extends HttpServlet {
                }
 
                try {
+                       InputStream siteIs = getServletContext().getResourceAsStream(siteConfigFileLocation);
+                       OriginSitesDigester siteDigester = new OriginSitesDigester();
                        siteDigester.setValidating(true);
                        originConfig = (WayfOrigins) siteDigester.parse(siteIs);
 
@@ -152,12 +153,12 @@ public class WayfService extends HttpServlet {
                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";
                }
 
        }
diff --git a/webApplication/WEB-INF/conf/schemas.properties b/webApplication/WEB-INF/conf/schemas.properties
deleted file mode 100755 (executable)
index d7a48e4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-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