*** empty log message ***
authorgilbert <gilbert@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Thu, 28 Oct 2004 13:49:20 +0000 (13:49 +0000)
committergilbert <gilbert@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Thu, 28 Oct 2004 13:49:20 +0000 (13:49 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/trunk@1171 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

src/edu/internet2/middleware/shibboleth/target/AttributeRequestor.java [deleted file]
src/edu/internet2/middleware/shibboleth/target/AuthenticationAssertionConsumerServlet.java [deleted file]
src/edu/internet2/middleware/shibboleth/target/FilterSupportImpl.java [deleted file]
src/edu/internet2/middleware/shibboleth/target/ITrust.java [deleted file]
src/edu/internet2/middleware/shibboleth/target/PluggableConfigurationComponent.java [deleted file]
src/edu/internet2/middleware/shibboleth/target/RequestTracker.java [deleted file]

diff --git a/src/edu/internet2/middleware/shibboleth/target/AttributeRequestor.java b/src/edu/internet2/middleware/shibboleth/target/AttributeRequestor.java
deleted file mode 100644 (file)
index 00d8530..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * AttributeRequestor.java
- * 
- * Generate a SAMLRequest to the AA for Attributes, then process the
- * reply. In C++, this logic was InternalCCacheEntry::getNewResponse() 
- * in shib-ccache.cpp.
- * 
- * The User Authentication was previously processed by ShibPOSTProfile
- * and was stored by SessionManager in a Session object. Although the
- * attributes might be fetched immediately, that is a strategy issue.
- * In Java, we isolate the Attribute fetch in this separate module.
- * 
- * The Session block retains a copy of the original SAMLStatement from
- * the POST, and it contains information about the remote Entity.
- * However, the POST came from the HS (or IIDPProvider if you want to
- * use SAML 2 terms), and this transaction has to go to the AA. So
- * Metadata must be used to obtain the AttributeAuthorityRole and its
- * associated Endpoint (URL).
- * 
- * The ApplicationInfo object for the configured Application presents
- * a getAttributeDesignators method that can return a list of attributes
- * to specify in the request. However, I can find no configuration element
- * that corresponds to this, and no example logic. For now that method
- * returns an empty collection and no particular attributes are requested.
- * 
- * The actual SSL session and exchange of data is performed by OpenSAML.
- * Our interface to SAML is through the separate ShibBind module. The
- * layers of processing and responsibilites need to be understood.
- * 
- * ShibBind uses the Metadata for the User's ID Providing Entity to
- * locate the AttributeAuthorityRole and therefore the AA URL. This
- * is passed to OpenSAML along with the request. Upon return, if any
- * statements are signed it is the responsiblilty of ShibBind to call
- * the Trust implementations to validate the signatures.
- * 
- * This module then checks, by calling the isSigned() property of
- * SAMLObjects, to make sure that everything that is supposed to be
- * signed actually was signed. ShibBind knows if a signature is valid,
- * but this module knows if a signature was requred. This module also
- * applies AAP to examine attributes and values and discard those that
- * the policy doesn't accept.
- * 
- * Recovery Context: All exceptions handled and logged internally.
- * --------------------
- * Copyright 2002, 2004 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * [Thats all we have to say to protect ourselves]
- * Your permission to use this code is governed by "The Shibboleth License".
- * A copy may be found at http://shibboleth.internet2.edu/license.html
- * [Nothing in copyright law requires license text in every file.]
- */
-package edu.internet2.middleware.shibboleth.target;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.apache.log4j.Logger;
-import org.opensaml.SAMLAssertion;
-import org.opensaml.SAMLAttributeQuery;
-import org.opensaml.SAMLException;
-import org.opensaml.SAMLRequest;
-import org.opensaml.SAMLResponse;
-import org.opensaml.SAMLSubject;
-
-import x0.maceShibbolethTargetConfig1.ApplicationDocument.Application;
-
-import edu.internet2.middleware.shibboleth.metadata.AttributeAuthorityRole;
-import edu.internet2.middleware.shibboleth.metadata.EntityDescriptor;
-import edu.internet2.middleware.shibboleth.metadata.MetadataException;
-import edu.internet2.middleware.shibboleth.target.ServiceProviderConfig.ApplicationInfo;
-
-/**
- * A static class with a static method. No objects are created
- * 
- * @author Howard Gilbert
- */
-public class AttributeRequestor {
-       
-       private static Logger log = Logger.getLogger(AttributeRequestor.class);
-       private static ServiceProviderContext context   = ServiceProviderContext.getInstance();
-       
-       private AttributeRequestor() {} // Prevent instantiation
-       
-       /**
-        * Request SAML Attribute response from AA
-        * 
-        * @param session Session object (from authentication POST)
-        * @return true if Attributes successfully stored in the Session
-        * @throws MetadataException If Origin has no configured AA
-        * @throws SAMLException If there is a problem with the reply
-        */
-       static 
-                       boolean    // return false if attributes are not fetched
-       fetchAttributes(
-                       Session session){
-               
-           log.debug("Fetching attributes for session "+session.getKey()+
-                   " from "+session.getEntityId());
-           
-               // Get local references to configuration objects
-               ServiceProviderConfig config = context.getServiceProviderConfig();
-               ApplicationInfo appinfo = config.getApplication(session.getApplicationId());
-               
-               // The Entity name was fed by by ShibPOSTProfile.accept(). Look it up now.
-               EntityDescriptor entity = appinfo.getEntityDescriptor(session.getEntityId());
-               if (entity==null) {
-                       log.error("Entity(Site) deleted from Metadata since authentication POST received: "+session.getEntityId());
-                       return false;
-               }
-               Application applicationConfig = appinfo.getApplicationConfig();
-               boolean signRequest = applicationConfig.getSignRequest();
-               boolean signedAssertions = applicationConfig.getSignedAssertions();
-               boolean signedResponse = applicationConfig.getSignedResponse();
-               
-               SAMLRequest request = null;
-               
-               AttributeAuthorityRole aa = 
-                   entity.getAttributeAuthorityRole(); // throws MetadataException
-               if (aa==null) {
-                   log.error("No Attribute Authority in Metadata for ID="+entity.getId());
-                   return false;
-               }
-               
-               // Build the Attribute Query 
-               SAMLAttributeQuery query = null;
-               SAMLSubject subject = session.getAuthenticationStatement().getSubject();
-               log.debug("Subject (Handle) is "+subject.getName());
-               Collection attributeDesignators = appinfo.getAttributeDesignators();
-               try {
-            query = 
-                new SAMLAttributeQuery(
-                       subject,             // Subject (i.e. Handle) from authentication
-                       entity.getId(),      // ID of user's Entity (i.e. Origin Site)
-                       attributeDesignators // Attributes to request, null for everything
-                       );
-
-            // Wrap the Query in a request
-            request = new SAMLRequest();
-            request.setQuery(query);
-        } catch (SAMLException e) {
-            log.error("AttributeRequestor unable to build SAML Query for Session "+session.getKey());
-            return false;
-        }
-               
-               if (signRequest) {
-                       // TODO Attribute requests are not typically signed, but add
-                       // code to do so optionally later.
-               }
-               
-               // ShibBinding will extract URLs from the Metadata and build
-               // parameters so SAML can create the session. It also interfaces
-               // to Trust to verify that any signed objects have trusted signatures.
-               ShibBinding binding = new ShibBinding(session.getApplicationId());
-               SAMLResponse response = null;
-               try {
-                       response = binding.send(request,aa,null,null);
-               } catch (SAMLException e) {;} // response will be null
-               if (response==null) {
-                       log.error("AttributeRequestor Query to remote AA returned no response from "+session.getEntityId());
-                       return false;
-               }
-               
-               if (signedResponse && 
-                       !response.isSigned()) {
-                       log.error("AttributeRequestor rejected unsigned attribute response from "+session.getEntityId());
-                       return false;
-               }
-               
-               // Check each assertion in the response.
-               Iterator assertions = response.getAssertions();
-               while (assertions.hasNext()) {
-                       SAMLAssertion assertion = (SAMLAssertion) assertions.next();
-                       if (signedAssertions && 
-                      !assertion.isSigned()) {
-                               log.warn("AttributeRequestor has removed unsigned assertion from response from "+session.getEntityId());
-                               assertions.remove();
-                               continue;
-                       }
-                       
-                       appinfo.applyAAP(entity,assertion); // apply each AAP to this assertion
-                       
-                       if (!assertion.getStatements().hasNext())
-                               assertions.remove(); // AAP rejected all statements for this assertion
-               }
-
-               // A response may end up with no attributes, but that is not an error.
-               // Maybe there is just nothing important to say about this user.
-               
-               session.setAttributeResponse(response); // Save response in Session object
-               return true;
-       }
-
-}
diff --git a/src/edu/internet2/middleware/shibboleth/target/AuthenticationAssertionConsumerServlet.java b/src/edu/internet2/middleware/shibboleth/target/AuthenticationAssertionConsumerServlet.java
deleted file mode 100644 (file)
index 8ba9ac4..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * AuthenticatonAssertionConsumerServlet
- * 
- * The Shibboleth function previous known as the SHIRE.
- * 
- * Authentication Assertion Consumer is the SAML 2.0 term for what the
- * SHIRE does. A SAML Assertion containing an Authentication statement
- * with the "principal" identifier value equal to the handle vended by
- * the Handle Server is received from the Browser. The Handle Server
- * generated a form, prefilled it with a Bin64 encoding of the SAML
- * statement, and included Javascript to automatically submit the form
- * to this URL.
- * 
- * All HTTP, HTML, and servlet logic is localized to this layer of
- * modules. Any information must be extracted from the Servlet API
- * to be passed directly to Shibboleth.
- * 
- * The work is done by a ShibPOSTProfile object. It takes the Bin64
- * encoded string, converts it to a SAMLObject, verifies structure,
- * and validates signatures.
- * 
- * The resulting Authentication Assertion SAML statement is passed
- * to Session Manager to create a new session. This process feeds
- * back a session identifier that becomes the value of a Cookie sent
- * back to the Browser to track the session.
- * 
- * If the decision is made to fetch attributes immediately, the 
- * Session object can be passed to the static AttributeRequestor
- * service. It generates a ShibBinding, sends a request to the AA,
- * validates the response, applies AAP, and stores the resulting 
- * SAML Attribute Assertion in the Session object.
- * 
- * --------------------
- * Copyright 2002, 2004 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * [Thats all we have to say to protect ourselves]
- * Your permission to use this code is governed by "The Shibboleth License".
- * A copy may be found at http://shibboleth.internet2.edu/license.html
- * [Nothing in copyright law requires license text in every file.]
- */
-package edu.internet2.middleware.shibboleth.target;
-
-import java.io.IOException;
-import java.util.Collections;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.opensaml.SAMLAssertion;
-import org.opensaml.SAMLAuthenticationStatement;
-import org.opensaml.SAMLException;
-import org.opensaml.SAMLPOSTProfile;
-import org.opensaml.SAMLResponse;
-import org.w3c.dom.Element;
-import org.apache.log4j.FileAppender;
-import org.apache.log4j.Layout;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.log4j.PatternLayout;
-import org.apache.xml.security.Init;
-
-import x0.maceShibbolethTargetConfig1.SessionsDocument.Sessions;
-
-import edu.internet2.middleware.commons.log4j.ThreadLocalAppender;
-import edu.internet2.middleware.shibboleth.common.Credentials;
-import edu.internet2.middleware.shibboleth.metadata.MetadataException;
-import edu.internet2.middleware.shibboleth.resource.AuthenticationFilter;
-import edu.internet2.middleware.shibboleth.target.ServiceProviderConfig.ApplicationInfo;
-
-/**
- * AuthenticatonAssertionConsumerServlet
- * 
- * @author Howard Gilbert
- */
-public class AuthenticationAssertionConsumerServlet extends HttpServlet {
-
-       private static Logger log = null;
-       
-       private static ServiceProviderContext context = ServiceProviderContext.getInstance();
-       
-       private Element                 configuration;
-       private Credentials                             credentials;
-       
-       public static final String SESSIONPARM =
-           "ShibbolethSessionId";
-       
-       
-       public void init() throws ServletException {
-               super.init();
-               ServletContext servletContext = this.getServletContext();
-               
-               Init.init();
-
-               // Initialize logging specially
-               Logger targetLogger = Logger.getLogger("edu.internet2.middleware");
-               String logname = servletContext.getRealPath("/diagnose/initialize.log");
-               Layout initLayout = new PatternLayout("%d{HH:mm} %-5p %m%n");
-               
-               try {
-            FileAppender initLogAppender = new FileAppender(initLayout,logname);
-            ThreadLocalAppender threadAppender = new ThreadLocalAppender();
-            threadAppender.setLayout(initLayout);
-            targetLogger.setAdditivity(false);
-            targetLogger.addAppender(initLogAppender);
-            targetLogger.addAppender(threadAppender);
-            targetLogger.setLevel(Level.DEBUG);
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-               
-/*             ConsoleAppender rootAppender = new ConsoleAppender();
-               rootAppender.setWriter(new PrintWriter(System.out));
-               rootAppender.setName("stdout");
-               targetLogger.addAppender(rootAppender);
-
-               // rootAppender.setLayout(new PatternLayout("%-5p %-41X{serviceId} %d{ISO8601} (%c:%L) - %m%n"));
-               // Logger.getRootLogger().setLevel((Level) Level.DEBUG);
-               Logger.getRootLogger().setLevel((Level) Level.INFO);
-               rootAppender.setLayout(new PatternLayout("%d{ISO8601} %-5p %-41X{serviceId} - %m%n"));
-*/
-               log = Logger.getLogger(AuthenticationAssertionConsumerServlet.class.getName());
-               
-               ServletContextInitializer.initServiceProvider(servletContext);
-               AuthenticationFilter.setFilterSupport(new FilterSupportImpl());
-               
-       }
-
-
-
-       /**
-        * Accept the SAML Assertion post from the HS.
-        * 
-        * @param request the request send by the client to the server
-        * @param response the response send by the server to the client
-        * @throws ServletException if an error occurred
-        * @throws IOException if an error occurred
-        */
-       public void doPost(
-               HttpServletRequest request,
-               HttpServletResponse response)
-               // throws ServletException, IOException 
-               {
-           ServletContextInitializer.beginService(request,response);
-               try {
-            ServiceProviderConfig config = context.getServiceProviderConfig();
-            
-            String ipaddr = request.getRemoteAddr();
-            
-            // URL of Resource that triggered authorization
-            String target = request.getParameter("TARGET");
-            
-            // Bin64 encoded SAML Authentication Assertion from HS
-            String assertparm = request.getParameter("SAMLResponse");
-            byte [] bin64Assertion = assertparm.getBytes();
-            
-            // Map the Resource URL into an <Application>
-            String applicationId = config.mapRequest(target);
-            ApplicationInfo appinfo = config.getApplication(applicationId);
-            Sessions appSessionValues = appinfo.getApplicationConfig().getSessions();
-            
-            // Sanity check:
-            // I am the SHIRE. So the SHIRE URL should be the one in the 
-            // HttpRequest. However, it might have been stepped on by a filter
-            // or frontend. This is the configured cannonical URL that was 
-            // passed to the filter, sent to the HS, and used by the browser
-            // in the redirect. If I need (for whatever reason) to pass a 
-            // Shire URL to the POST processing, lets use the configured one
-            String shireURL = appSessionValues.getShireURL();
-            
-            // Provider ID of me, the Service Provider, for this application
-            String providerId = appinfo.getApplicationConfig().getProviderId();
-            String[] audiences = new String[1];
-            audiences[0]=providerId;
-            
-            if (appSessionValues.getShireSSL()&& // Requires SSL
-                       !request.isSecure()) {       // isn't SSL
-               log.error("Authentication Assersion not posted over SSL.");
-               response.sendRedirect("/shireError.html");
-            }
-            
-            log.debug("Authentication received from "+ipaddr+" for "+target+
-                        "(application:"+applicationId+") (Provider:"+providerId+")");
-            
-            // Unfortunately, the previous mix of Java and C had about 100 things
-            // called "providers". In this particular case, we are passing to 
-            // the POST processing layer an empty StringBuffer into which will be
-            // placed a second return value (tricky!). This will be the ID of the
-            // Origin. 
-            StringBuffer pproviderId = new StringBuffer();
-            
-            SAMLResponse samldata = null;      
-            SAMLAssertion assertion = null;
-            SAMLAuthenticationStatement authstmt = null;
-            try { 
-               ShibPOSTProfile profile = new ShibPOSTProfile(applicationId);
-               samldata = profile.accept(
-                       bin64Assertion, // Assertion from POST of Form field
-                       shireURL,   // My URL (Why??)
-                       60, 
-                       audiences,  // My "Provider" (Entity) ID
-                       pproviderId // HS "Provider" (Entity) ID returned
-                       );
-               
-                assertion = SAMLPOSTProfile.getSSOAssertion(samldata,
-                        Collections.singleton(providerId));
-                authstmt = SAMLPOSTProfile.getSSOStatement(assertion);
-               
-            } catch (SAMLException e) {
-               log.error("Authentication Assertion had invalid format.");
-               response.sendRedirect("/shireError.html");
-               return;
-            }
-            catch (MetadataException e) {
-               log.error("Authentication Assertion source not found in Metadata.");
-               response.sendRedirect("/shireError.html");
-               return;
-            }
-
-            
-            // The Authentication Assertion gets placed in a newly created
-            // Session object. Later, someone will get an Attribute Assertion
-            // and add it to the Session. The SessionID key is returned to
-            // the Browser as a Cookie.
-            SessionManager sessionManager = context.getSessionManager();
-            String sessionid = sessionManager.newSession(
-                    applicationId, ipaddr, pproviderId.toString(), assertion, authstmt);
-            Cookie cookie = new Cookie("ShibbolethSPSession",sessionid);
-            response.addCookie(cookie);
-            
-            // Very agressive attribute fetch rule 
-            // Get the Attributes immediately! [good for debugging]
-            Session session = sessionManager.findSession(sessionid, applicationId);
-            boolean gotattributes = AttributeRequestor.fetchAttributes(session);
-            if (!gotattributes)
-               response.sendRedirect("/shireError.html");
-            
-            log.debug(SessionManager.dumpAttributes(session));
-            
-            response.sendRedirect(target+"?"+SESSIONPARM+"="+sessionid);
-        } catch (IOException e) {
-            // A sendRedirect() failed. 
-            // This can only happen if the user closed the Browser.
-            // Nothing to do
-        } finally {
-            ServletContextInitializer.finishService(request,response);
-        }
-
-       }
-       
-    protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)
-       throws ServletException, IOException {
-        // TODO Auto-generated method stub
-        super.doGet(arg0, arg1);
-    }
-       
-
-}
diff --git a/src/edu/internet2/middleware/shibboleth/target/FilterSupportImpl.java b/src/edu/internet2/middleware/shibboleth/target/FilterSupportImpl.java
deleted file mode 100644 (file)
index bc21a2f..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * FilterSupportImpl.java
- * 
- * Provide access to the Filter to configuration information
- * and Session data.
- * 
- * --------------------
- * Copyright 2002, 2004 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * [Thats all we have to say to protect ourselves]
- * Your permission to use this code is governed by "The Shibboleth License".
- * A copy may be found at http://shibboleth.internet2.edu/license.html
- * [Nothing in copyright law requires license text in every file.]
- */
-package edu.internet2.middleware.shibboleth.target;
-
-import java.util.Map;
-
-import edu.internet2.middleware.shibboleth.common.AAP;
-import edu.internet2.middleware.shibboleth.common.AttributeRule;
-import edu.internet2.middleware.shibboleth.resource.FilterSupport;
-import edu.internet2.middleware.shibboleth.target.ServiceProviderConfig.ApplicationInfo;
-
-/**
- * Provide access from the Filter to the /shibboleth configuration and Sessions.
- * 
- * @author Howard Gilbert
- */
-public class FilterSupportImpl implements FilterSupport {
-    
-    public static ServiceProviderContext context = ServiceProviderContext.getInstance();
-
-    /**
-     * Given a Resource URL, go to the RequestMap logic to find an applicationId.
-     * 
-     * @param url The URL of the Resource presented by the browser
-     * @return applicationId string
-     */
-    public String getApplicationId(String url) {
-        ServiceProviderConfig config = context.getServiceProviderConfig();
-        String applicationId = config.mapRequest(url);
-        return applicationId;
-    }
-    
-    /**
-     * Get the "providerId" (site name) of the ServiceProvider
-     * 
-     * @param applicationId 
-     * @return providerId string
-     */
-    public String getProviderId(String applicationId) {
-        ServiceProviderConfig config = context.getServiceProviderConfig();
-        ApplicationInfo application = config.getApplication(applicationId);
-        String providerId = application.getApplicationConfig().getProviderId();
-        return providerId;
-    }
-    
-    /**
-     * Get the URL of the local AuthenticationAssertionConsumerServlet.
-     * 
-     * @param applicationId
-     * @return URL string
-     */
-    public String getShireUrl(String applicationId) {
-        ServiceProviderConfig config = context.getServiceProviderConfig();
-        ApplicationInfo application = config.getApplication(applicationId);
-        String shireUrl = application.getApplicationConfig().getSessions().getShireURL();
-        return shireUrl;
-    }
-    
-    /**
-     * Get the URL to which the Browser should be initially redirected.
-     * 
-     * @param applicationId
-     * @return URL string
-     */
-    public String getWayfUrl(String applicationId) {
-        ServiceProviderConfig config = context.getServiceProviderConfig();
-        ApplicationInfo application = config.getApplication(applicationId);
-        String wayfUrl = application.getApplicationConfig().getSessions().getWayfURL();
-        return wayfUrl;
-    }
-    
-       /**
-        * Does the requested resource require Shibboleth authentication?
-        * 
-        * @param url  request url
-        * @return     true if Shibboleth is required
-        */
-       public boolean isProtected(String url) {
-           // TODO Add some real logic. This is just a placeholder
-           if (url.endsWith("test.txt"))
-               return true;
-           return false;
-       }
-
-       /**
-        * Get attributes for this Session 
-        * 
-        * @param sessionId
-        * @param applicationId
-        * @return Map of (attribute,value) pairs
-        */
-    public Map /*<String,String>*/ 
-    getSessionAttributes(String sessionId, String applicationId) {
-        SessionManager sm = context.getSessionManager();
-        Session session = 
-            sm.findSession(sessionId, applicationId);
-        if (session==null)
-            return null;
-        Map /*<String,String>*/ attributes = SessionManager.mapAttributes(session);
-        return attributes;
-    }
-
-    /**
-     * Map attribute name to pseudo-HTTP-Headers
-     * 
-     * @param attributeName
-     * @param applicationId
-     * @return null or Header name string
-     */
-    public String getHeader(String attributeName, String applicationId) {
-        ServiceProviderConfig config = context.getServiceProviderConfig();
-        ApplicationInfo application = config.getApplication(applicationId);
-        AAP[] providers = application.getAAPProviders();
-        for (int i=0;i<providers.length;i++) {
-            AAP aap = providers[i];
-            AttributeRule rule = aap.lookup(attributeName, null);
-            if (rule!=null)
-                return rule.getHeader();
-        }
-        return null;
-    }
-
-
-}
diff --git a/src/edu/internet2/middleware/shibboleth/target/ITrust.java b/src/edu/internet2/middleware/shibboleth/target/ITrust.java
deleted file mode 100644 (file)
index b29c2c7..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * ITrust.java [Sorry but Trust.java is a very popular class name]
- * 
- * Trust provider plugins obtain keys and certificates from the configuration
- * file and then provide the logic to validate signatures.
- * 
- * Corresponds to ITrust interface of the C++ code. 
- * 
- * A pluggable trust element in a Shibboleth configuration
- * file builds or gains access to a collection of keys and/or
- * certificates (that contain keys). Each key/certificate is 
- * associated with one or more subject names that represent
- * Shibboleth services at a particular institution (Entity). 
- * 
- * The function of Trust is to determine the Subject name
- * from the SAMLAssertion, look up the key/certificate for
- * that Subject, apply a wildcard where appropriate, and then
- * ask OpenSAML to ask XML Security to validate the assertion
- * given the key.
- * 
- * Notably implemented by XMLTrustImpl.
- * 
- * --------------------
- * Copyright 2002, 2004 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * [Thats all we have to say to protect ourselves]
- * Your permission to use this code is governed by "The Shibboleth License".
- * A copy may be found at http://shibboleth.internet2.edu/license.html
- * [Nothing in copyright law requires license text in every file.]
- */
-package edu.internet2.middleware.shibboleth.target;
-
-import java.util.Iterator;
-
-import org.opensaml.SAMLObject;
-
-import edu.internet2.middleware.shibboleth.metadata.EntityLocator;
-import edu.internet2.middleware.shibboleth.metadata.ProviderRole;
-
-/**
- * @author Howard Gilbert
- */
-public interface ITrust {
-       
-       /**
-        * Validate a signed SAML object using configuration data
-        * 
-        * @param revocations Revocation Providers from the &lt;Application&gt;
-        * @param role        The Role [HS, SHAR] from the Entity 
-        * @param token       The signed SAML object
-        * @param locator     ApplicationInfo[.getEntityDescriptor(String id), was IMetadata]
-        * @return            true if the object validates
-        */
-       boolean validate(
-               Iterator revocations,
-               ProviderRole role,
-               SAMLObject token,
-               EntityLocator locator
-       );
-       
-       /*
-        * Note: Java attach() has no implementations or uses at this point
-        */
-       boolean attach (
-               Iterator revocations,
-               ProviderRole role
-       );
-
-}
diff --git a/src/edu/internet2/middleware/shibboleth/target/PluggableConfigurationComponent.java b/src/edu/internet2/middleware/shibboleth/target/PluggableConfigurationComponent.java
deleted file mode 100644 (file)
index 34781b2..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * PluggableConfigurationComponent.java
- * 
- * Classes that implement a Pluggable configuration service
- * must also implement this interface.
- * 
- * After loading a class by passing the type= attribute to
- * Class.forName(), a specific sanity check can be performed
- * by verifying that the loaded class implements this interface.
- * This ensures that it really is a Plugin.
- * 
- * The getSchemaPathname() method returns the resource name
- * of the schema file used to parse the XML configuration data.
- * 
- * The initialize() method is then called, passing a DOM
- * node that represents the configuration information for
- * the plugin, either as opaque inline XML or from a 
- * loaded external file.
- * 
- * Note: in earlier releases the DOM node was passed to
- * the constructor, but it is safer to support a default
- * (no argument) constructor and handle initialization though
- * an interface like this.
- * 
- * Note: To be useful, the implementing class must also
- * implement some functional interface, such as ITrust or
- * AAP. This interface just manages the load and initialization
- * part.
- * 
- * For examples of use, see one of the builtin implementation
- * classes (XMLMetadataImpl, ...).
- * 
- * --------------------
- * Copyright 2002, 2004 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * [Thats all we have to say to protect ourselves]
- * Your permission to use this code is governed by "The Shibboleth License".
- * A copy may be found at http://shibboleth.internet2.edu/license.html
- * [Nothing in copyright law requires license text in every file.]
- */
-package edu.internet2.middleware.shibboleth.target;
-
-import org.apache.xmlbeans.XmlException;
-import org.w3c.dom.Node;
-
-import edu.internet2.middleware.shibboleth.common.ShibbolethConfigurationException;
-
-interface PluggableConfigurationComponent {
-    
-    public abstract void 
-    initialize(Node dom) 
-       throws 
-       XmlException, // If there is a problem in the configuration data
-       ShibbolethConfigurationException; // for other problems
-    
-    public String getSchemaPathname();
-}
\ No newline at end of file
diff --git a/src/edu/internet2/middleware/shibboleth/target/RequestTracker.java b/src/edu/internet2/middleware/shibboleth/target/RequestTracker.java
deleted file mode 100644 (file)
index 8c563f7..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * RequestTracker.java
- * 
- * An object representing a sanitized version of information
- * on the current request. Typically, data will be extracted 
- * from the current HttpRequest and stored here. A reference to 
- * the object is stored in a ThreadLocal field of the 
- * ServiceProviderContext when a request arrives, and then the 
- * reference is nulled before returning to the container.
- * 
- * Thread local storage is somewhat expensive, though it gets
- * more efficient with each release. Therefore, a reference to
- * this object should be obtained once when needed and saved
- * in a local variable. Obviously, a reference must never be
- * saved in a field because the data here is thread-specific.
- */
-package edu.internet2.middleware.shibboleth.target;
-
-/**
- * Hold information about the current request in a ThreadLocal object.
- * 
- * <p>ServiceProviderContext context = ServiceProviderContext.getInstance();<br />
- * RequestTracker requestTracker = context.getRequestContext();</p>
- * 
- * @author Howard Gilbert
- */
-public class RequestTracker {
-    
-    String ipaddr = null;
-
-    public String getIpaddr() {
-        return ipaddr;
-    }
-    public void setIpaddr(String ipaddr) {
-        this.ipaddr = ipaddr;
-    }
-}