Moved java src to apache license.
authorwassa <wassa@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Fri, 20 May 2005 16:23:01 +0000 (16:23 +0000)
committerwassa <wassa@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Fri, 20 May 2005 16:23:01 +0000 (16:23 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/trunk@1566 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

195 files changed:
src/edu/internet2/middleware/commons/log4j/RequestLoggingFilter.java
src/edu/internet2/middleware/commons/log4j/ShowLog.java
src/edu/internet2/middleware/commons/log4j/SimpleAppenderContextImpl.java
src/edu/internet2/middleware/commons/log4j/ThreadLocalAppender.java
src/edu/internet2/middleware/commons/log4j/ThreadLocalAppenderContext.java
src/edu/internet2/middleware/commons/log4j/WrappedLog.java
src/edu/internet2/middleware/shibboleth/aa/AAAttribute.java
src/edu/internet2/middleware/shibboleth/aa/AAAttributeSet.java
src/edu/internet2/middleware/shibboleth/aa/AAException.java
src/edu/internet2/middleware/shibboleth/aa/arp/Arp.java
src/edu/internet2/middleware/shibboleth/aa/arp/ArpAttribute.java
src/edu/internet2/middleware/shibboleth/aa/arp/ArpAttributeSet.java
src/edu/internet2/middleware/shibboleth/aa/arp/ArpEngine.java
src/edu/internet2/middleware/shibboleth/aa/arp/ArpException.java
src/edu/internet2/middleware/shibboleth/aa/arp/ArpMarshallingException.java
src/edu/internet2/middleware/shibboleth/aa/arp/ArpProcessingException.java
src/edu/internet2/middleware/shibboleth/aa/arp/ArpRepository.java
src/edu/internet2/middleware/shibboleth/aa/arp/ArpRepositoryException.java
src/edu/internet2/middleware/shibboleth/aa/arp/ArpRepositoryFactory.java
src/edu/internet2/middleware/shibboleth/aa/arp/MatchFunction.java
src/edu/internet2/middleware/shibboleth/aa/arp/MatchingException.java
src/edu/internet2/middleware/shibboleth/aa/arp/Rule.java
src/edu/internet2/middleware/shibboleth/aa/arp/provider/BaseArpRepository.java
src/edu/internet2/middleware/shibboleth/aa/arp/provider/FileSystemArpRepository.java
src/edu/internet2/middleware/shibboleth/aa/arp/provider/MemoryArpRepository.java
src/edu/internet2/middleware/shibboleth/aa/arp/provider/RegexMatchFunction.java
src/edu/internet2/middleware/shibboleth/aa/arp/provider/RegexNotMatchFunction.java
src/edu/internet2/middleware/shibboleth/aa/arp/provider/ResourceTreeMatchFunction.java
src/edu/internet2/middleware/shibboleth/aa/arp/provider/StringValueMatchFunction.java
src/edu/internet2/middleware/shibboleth/aa/arp/provider/StringValueNotMatchFunction.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/AttributeDefinitionPlugIn.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/AttributeResolver.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/AttributeResolverException.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/DataConnectorPlugIn.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/Dependencies.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/ResolutionPlugIn.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/ResolutionPlugInException.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/ResolutionPlugInFactory.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/ResolverAttribute.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/ResolverAttributeSet.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/ResolverCache.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/Base64ValueHandler.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/BaseAttributeDefinition.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/BaseDataConnector.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/BaseResolutionPlugIn.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/CompositeAttributeDefinition.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/CustomAttributeDefinition.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/CustomDataConnector.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/FormattedAttributeDefinition.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/JDBCAttributeExtractor.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/JDBCAttributeExtractorException.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/JDBCDataConnector.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/JDBCStatementCreator.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/JDBCStatementCreatorException.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/JNDIDirectoryDataConnector.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/MappedAttributeDefinition.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/PersistentIDAttributeDefinition.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/RegExAttributeDefinition.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/SAML2PersistentID.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/SampleConnector.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/ScopedStringValueHandler.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/SimpleAttributeDefinition.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/SimpleBaseAttributeDefinition.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/ValueHandler.java
src/edu/internet2/middleware/shibboleth/aa/attrresolv/provider/ValueHandlerException.java
src/edu/internet2/middleware/shibboleth/aap/AAP.java
src/edu/internet2/middleware/shibboleth/aap/AttributeRule.java
src/edu/internet2/middleware/shibboleth/aap/provider/XMLAAP.java
src/edu/internet2/middleware/shibboleth/aap/provider/XMLAAPProvider.java
src/edu/internet2/middleware/shibboleth/artifact/ArtifactMapper.java
src/edu/internet2/middleware/shibboleth/artifact/ArtifactMapperFactory.java
src/edu/internet2/middleware/shibboleth/artifact/ArtifactMapping.java
src/edu/internet2/middleware/shibboleth/artifact/provider/BaseArtifactMapper.java
src/edu/internet2/middleware/shibboleth/artifact/provider/MemoryArtifactMapper.java
src/edu/internet2/middleware/shibboleth/common/Constants.java
src/edu/internet2/middleware/shibboleth/common/Credential.java
src/edu/internet2/middleware/shibboleth/common/CredentialResolver.java
src/edu/internet2/middleware/shibboleth/common/Credentials.java
src/edu/internet2/middleware/shibboleth/common/IdentityProvider.java
src/edu/internet2/middleware/shibboleth/common/InvalidNameIdentifierException.java
src/edu/internet2/middleware/shibboleth/common/LocalPrincipal.java
src/edu/internet2/middleware/shibboleth/common/NameIdentifierMapping.java
src/edu/internet2/middleware/shibboleth/common/NameIdentifierMappingException.java
src/edu/internet2/middleware/shibboleth/common/NameMapper.java
src/edu/internet2/middleware/shibboleth/common/RelyingParty.java
src/edu/internet2/middleware/shibboleth/common/ResourceWatchdog.java
src/edu/internet2/middleware/shibboleth/common/ResourceWatchdogExecutionException.java
src/edu/internet2/middleware/shibboleth/common/ServiceProvider.java
src/edu/internet2/middleware/shibboleth/common/ServiceProviderMapper.java
src/edu/internet2/middleware/shibboleth/common/ServiceProviderMapperException.java
src/edu/internet2/middleware/shibboleth/common/ServletDigester.java
src/edu/internet2/middleware/shibboleth/common/ShibBrowserProfile.java
src/edu/internet2/middleware/shibboleth/common/ShibResource.java
src/edu/internet2/middleware/shibboleth/common/ShibbolethConfigurationException.java
src/edu/internet2/middleware/shibboleth/common/Trust.java
src/edu/internet2/middleware/shibboleth/common/UnsupportedProtocolException.java
src/edu/internet2/middleware/shibboleth/common/XML.java
src/edu/internet2/middleware/shibboleth/common/provider/AQHNameIdentifierMapping.java
src/edu/internet2/middleware/shibboleth/common/provider/BaseNameIdentifierMapping.java
src/edu/internet2/middleware/shibboleth/common/provider/BasicTrust.java
src/edu/internet2/middleware/shibboleth/common/provider/CryptoShibHandle.java
src/edu/internet2/middleware/shibboleth/common/provider/PrincipalNameIdentifier.java
src/edu/internet2/middleware/shibboleth/common/provider/SharedMemoryShibHandle.java
src/edu/internet2/middleware/shibboleth/common/provider/ShibbolethTrust.java
src/edu/internet2/middleware/shibboleth/common/provider/X509SubjectNameNameIdentifierMapping.java
src/edu/internet2/middleware/shibboleth/idp/IdPConfig.java
src/edu/internet2/middleware/shibboleth/idp/IdPConfigLoader.java
src/edu/internet2/middleware/shibboleth/idp/IdPProtocolHandler.java
src/edu/internet2/middleware/shibboleth/idp/IdPProtocolSupport.java
src/edu/internet2/middleware/shibboleth/idp/IdPResponder.java
src/edu/internet2/middleware/shibboleth/idp/InvalidClientDataException.java
src/edu/internet2/middleware/shibboleth/idp/ProtocolHandlerFactory.java
src/edu/internet2/middleware/shibboleth/idp/provider/BaseHandler.java
src/edu/internet2/middleware/shibboleth/idp/provider/BaseServiceHandler.java
src/edu/internet2/middleware/shibboleth/idp/provider/E_AuthSSOHandler.java
src/edu/internet2/middleware/shibboleth/idp/provider/SAMLv1_1ArtifactQueryHandler.java
src/edu/internet2/middleware/shibboleth/idp/provider/SAMLv1_AttributeQueryHandler.java
src/edu/internet2/middleware/shibboleth/idp/provider/SSOHandler.java
src/edu/internet2/middleware/shibboleth/idp/provider/ShibbolethV1SSOHandler.java
src/edu/internet2/middleware/shibboleth/log/LoggingInitializer.java
src/edu/internet2/middleware/shibboleth/metadata/AffiliationDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/AttributeAuthorityDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/AttributeConsumingService.java
src/edu/internet2/middleware/shibboleth/metadata/AttributeRequesterDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/AuthnAuthorityDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/ContactPerson.java
src/edu/internet2/middleware/shibboleth/metadata/Endpoint.java
src/edu/internet2/middleware/shibboleth/metadata/EndpointManager.java
src/edu/internet2/middleware/shibboleth/metadata/EntitiesDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/EntityDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/ExtendedEntitiesDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/ExtendedEntityDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/IDPSSODescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/IndexedEndpoint.java
src/edu/internet2/middleware/shibboleth/metadata/KeyAuthority.java
src/edu/internet2/middleware/shibboleth/metadata/KeyDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/Metadata.java
src/edu/internet2/middleware/shibboleth/metadata/MetadataException.java
src/edu/internet2/middleware/shibboleth/metadata/Organization.java
src/edu/internet2/middleware/shibboleth/metadata/PDPDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/RoleDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/SPSSODescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/SSODescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/ScopedRoleDescriptor.java
src/edu/internet2/middleware/shibboleth/metadata/provider/XMLMetadata.java
src/edu/internet2/middleware/shibboleth/metadata/provider/XMLMetadataLoadWrapper.java
src/edu/internet2/middleware/shibboleth/metadata/provider/XMLMetadataProvider.java
src/edu/internet2/middleware/shibboleth/serviceprovider/AttributeRequestor.java
src/edu/internet2/middleware/shibboleth/serviceprovider/AuthenticationAssertionConsumerServlet.java
src/edu/internet2/middleware/shibboleth/serviceprovider/FilterSupportImpl.java
src/edu/internet2/middleware/shibboleth/serviceprovider/PluggableConfigurationComponent.java
src/edu/internet2/middleware/shibboleth/serviceprovider/RequestTracker.java
src/edu/internet2/middleware/shibboleth/serviceprovider/ServiceProviderConfig.java
src/edu/internet2/middleware/shibboleth/serviceprovider/ServiceProviderContext.java
src/edu/internet2/middleware/shibboleth/serviceprovider/ServletContextInitializer.java
src/edu/internet2/middleware/shibboleth/serviceprovider/Session.java
src/edu/internet2/middleware/shibboleth/serviceprovider/SessionCache.java
src/edu/internet2/middleware/shibboleth/serviceprovider/SessionManager.java
src/edu/internet2/middleware/shibboleth/serviceprovider/ShibBinding.java
src/edu/internet2/middleware/shibboleth/serviceprovider/ShibHttpHook.java
src/edu/internet2/middleware/shibboleth/serviceprovider/XMLAAPImpl.java
src/edu/internet2/middleware/shibboleth/serviceprovider/XMLMetadataImpl.java
src/edu/internet2/middleware/shibboleth/utils/ClientCertTrustFilter.java
src/edu/internet2/middleware/shibboleth/utils/ExtKeyTool.java
src/edu/internet2/middleware/shibboleth/utils/HandleRepositorySecretGenerator.java
src/edu/internet2/middleware/shibboleth/utils/KerberosPrincipalFilter.java
src/edu/internet2/middleware/shibboleth/utils/MetadataTool.java
src/edu/internet2/middleware/shibboleth/utils/ResolverTest.java
src/edu/internet2/middleware/shibboleth/utils/SAML1_0to1_1ConversionFilter.java
src/edu/internet2/middleware/shibboleth/utils/ant/XInput.java
src/edu/internet2/middleware/shibboleth/utils/ant/XInputHandler.java
src/edu/internet2/middleware/shibboleth/utils/ant/XInputOption.java
src/edu/internet2/middleware/shibboleth/utils/ant/XInputRequest.java
src/edu/internet2/middleware/shibboleth/utils/ant/XMenuInputHandler.java
src/edu/internet2/middleware/shibboleth/utils/ant/XMultipleChoiceInputRequest.java
src/edu/internet2/middleware/shibboleth/wayf/CookieWayfCache.java
src/edu/internet2/middleware/shibboleth/wayf/NullWayfCache.java
src/edu/internet2/middleware/shibboleth/wayf/Origin.java
src/edu/internet2/middleware/shibboleth/wayf/OriginSet.java
src/edu/internet2/middleware/shibboleth/wayf/OriginSitesDigester.java
src/edu/internet2/middleware/shibboleth/wayf/SessionWayfCache.java
src/edu/internet2/middleware/shibboleth/wayf/WayfCache.java
src/edu/internet2/middleware/shibboleth/wayf/WayfCacheBase.java
src/edu/internet2/middleware/shibboleth/wayf/WayfCacheFactory.java
src/edu/internet2/middleware/shibboleth/wayf/WayfCacheOptions.java
src/edu/internet2/middleware/shibboleth/wayf/WayfConfig.java
src/edu/internet2/middleware/shibboleth/wayf/WayfConfigDigester.java
src/edu/internet2/middleware/shibboleth/wayf/WayfException.java
src/edu/internet2/middleware/shibboleth/wayf/WayfOrigins.java
src/edu/internet2/middleware/shibboleth/wayf/WayfService.java
src/edu/internet2/middleware/shibboleth/wayf/WayfTester.java
src/edu/internet2/middleware/shibboleth/xml/Parser.java
src/edu/internet2/middleware/shibboleth/xml/SchemaStore.java
src/edu/internet2/middleware/shibboleth/xml/SchemasDirectoryImpl.java
src/edu/internet2/middleware/shibboleth/xml/SchemasResourceListImpl.java

index 0cc6a4f..6fd5c76 100644 (file)
@@ -1,4 +1,20 @@
 /*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
  * RequestLoggingFilter.java
  * 
  * Configure any Servlet context that you want to trace setting
  * processes the trace data differently.
  * 
  * Dependencies: Log4J
- * 
- * --------------------
- * Copyright 2002, 2004 
- * Yale University
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * Your permission to use this code is governed by "The Shibboleth License".
- * A copy may be found at http://shibboleth.internet2.edu/license.html
  */
 package edu.internet2.middleware.commons.log4j;
 
index ce68abd..3445a9b 100644 (file)
@@ -1,18 +1,26 @@
 /*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
  * ShowLog.java
  * 
  * Servlet that extracts the ThreadLocal log data from the HttpSession and 
  * returns it to the user's browser.
  * 
  * Dependencies: The session attribute name must match the name used by the Filter.
- * 
- * --------------------
- * Copyright 2002, 2004 
- * Yale University
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * Your permission to use this code is governed by "The Shibboleth License".
- * A copy may be found at http://shibboleth.internet2.edu/license.html
  */
 package edu.internet2.middleware.commons.log4j;
 
index 2949970..e65e2bf 100644 (file)
@@ -1,4 +1,20 @@
 /*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
  * SimpleAppenderContext.java
  * 
  * A TheadLocalAppenderContext implementation class serves as the 
  * objects share only the static variable. Do not make the 
  * mistake of assuming that the Filter and log share the same
  * object.
- * 
- * --------------------
- * Copyright 2002, 2004 
- * Yale University
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * Your permission to use this code is governed by "The Shibboleth License".
- * A copy may be found at http://shibboleth.internet2.edu/license.html
  */
 package edu.internet2.middleware.commons.log4j;
 
index 1fbd090..d8389df 100644 (file)
@@ -1,4 +1,20 @@
 /*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
  * ThreadLocalAppender.java
  * 
  * This is a Log4J Appender. You add it to your Log4J configuration just 
  * name) and a separate Filter to load and activate it.
  * 
  * Dependencies: Log4J
- * 
- * --------------------
- * Copyright 2002, 2004 
- * Yale University
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * Your permission to use this code is governed by "The Shibboleth License".
- * A copy may be found at http://shibboleth.internet2.edu/license.html
  */
 package edu.internet2.middleware.commons.log4j;
 
index dbf5b62..17a76a9 100644 (file)
@@ -1,4 +1,20 @@
 /*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
  * ThreadLocalAppenderContext.java
  * 
  * An interface describing the services provided by the "helper class"
  * 
  * The default implementation of this interface is provided by the
  * SimpleAppenderContextImpl class.
- * 
- * --------------------
- * Copyright 2002, 2004 
- * Yale University
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * Your permission to use this code is governed by "The Shibboleth License".
- * A copy may be found at http://shibboleth.internet2.edu/license.html
  */
+
 package edu.internet2.middleware.commons.log4j;
 
 import java.io.Writer;
 
-
 /**
  * Provide ThreadLocalAppender with a Writer into which to put the log data.
  * 
- * Provide the Request managment layer (Servlet, Servlet Filter, RMI, ...)
- * methods to signal the start and end of a request. After the startRequest
- * the implementing object should have generated a bucket to hold trace and
- * should 
+ * Provide the Request managment layer (Servlet, Servlet Filter, RMI, ...) methods to signal the start and end of a
+ * request. After the startRequest the implementing object should have generated a bucket to hold trace and should
  * 
- * <p>The purpose of ThreadLocal logging is to log activity local to a request
- * in an application server (say a Tomcat Web request). The problem is that
- * such threads never belong to the code that is doing the logging, they 
- * belong to the external container. So what you have to do is load the
- * ThreadLocal reference on entry to the Servlet/EJB/whatever and then
- * clear the pointer before returning to the container. You can't do that
- * if the ThreadLocal variable belongs to the Appender, because the 
- * Appender should, if properly abstracted, only know about log4j. So you
- * have to feed the appender an object (or the name of a class that can
- * create an object) that knows where the ThreadLocal pointer is for this
- * application and can return it. That is what this interface does.</p>
+ * <p>
+ * The purpose of ThreadLocal logging is to log activity local to a request in an application server (say a Tomcat Web
+ * request). The problem is that such threads never belong to the code that is doing the logging, they belong to the
+ * external container. So what you have to do is load the ThreadLocal reference on entry to the Servlet/EJB/whatever and
+ * then clear the pointer before returning to the container. You can't do that if the ThreadLocal variable belongs to
+ * the Appender, because the Appender should, if properly abstracted, only know about log4j. So you have to feed the
+ * appender an object (or the name of a class that can create an object) that knows where the ThreadLocal pointer is for
+ * this application and can return it. That is what this interface does.
+ * </p>
  * 
- * <p>You must create a class, familiar with the environment, that implements
- * the class and passes back either null or a ThreadLocal Writer.
- * The name of this class must be the LocalContext parameter of the
- * ThreadLocalAppender configuration. The class must be in the classpath when
- * the Appender is configured.
+ * <p>
+ * You must create a class, familiar with the environment, that implements the class and passes back either null or a
+ * ThreadLocal Writer. The name of this class must be the LocalContext parameter of the ThreadLocalAppender
+ * configuration. The class must be in the classpath when the Appender is configured.
  * </p>
  * 
  * @author Howard Gilbert
  */
 public interface ThreadLocalAppenderContext {
-    
-    /**
-     * Give the Appender a Writer into which to write data.
-     * @return Writer
-     */
-    Writer getLocalWriter();
-    
-    /**
-     * Called by the request manager (say the Servlet Filter) to 
-     * signal the start of a new request. The implementor must 
-     * allocate a new Writer to accept data.
-     */
-    void startRequest();
-    
-    /**
-     * Called by the request manager to signal the end of a request.
-     * Returns an IOU that will deliver the log data on request
-     * if it is needed (typically when a Servlet wants to display
-     * log data to a remote user.)
-     * @return WrappedLog object to access log data.
-     */
-    WrappedLog endRequest();
-    
+
+       /**
+        * Give the Appender a Writer into which to write data.
+        * 
+        * @return Writer
+        */
+       Writer getLocalWriter();
+
+       /**
+        * Called by the request manager (say the Servlet Filter) to signal the start of a new request. The implementor must
+        * allocate a new Writer to accept data.
+        */
+       void startRequest();
+
+       /**
+        * Called by the request manager to signal the end of a request. Returns an IOU that will deliver the log data on
+        * request if it is needed (typically when a Servlet wants to display log data to a remote user.)
+        * 
+        * @return WrappedLog object to access log data.
+        */
+       WrappedLog endRequest();
+
 }
index 1c44d15..44e7656 100644 (file)
@@ -1,36 +1,42 @@
 /*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
  * WrappedLog.java
  * 
  * IOU object for some Log data.
  * 
  * This interface is implemented, for example, by the 
  * SimpleAppenderContextImpl.WrappedStringLog class.
- * 
- * 
- * --------------------
- * Copyright 2002, 2004 
- * Yale University
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * Your permission to use this code is governed by "The Shibboleth License".
- * A copy may be found at http://shibboleth.internet2.edu/license.html
  */
+
 package edu.internet2.middleware.commons.log4j;
 
 /**
  * Wrapper to abstract the ThreadLocal log storage.
  * 
- * <p>In most cases, the log data will just be a string kept in memory.
- * However, one could imagine it would be a file on disk, or an EhCache
- * hybrid where the last 100 are kept in memory and the overflow of 
- * less recently used are written to disk. So after logging is done, we
- * return this IOU that will fetch the log data later when you want
- * to display it.
+ * <p>
+ * In most cases, the log data will just be a string kept in memory. However, one could imagine it would be a file on
+ * disk, or an EhCache hybrid where the last 100 are kept in memory and the overflow of less recently used are written
+ * to disk. So after logging is done, we return this IOU that will fetch the log data later when you want to display it.
  * 
  * @author Howard Gilbert
  */
 public interface WrappedLog {
-    
-    String getLogData();
+
+       String getLogData();
 
 }
index 993da92..695e464 100644 (file)
@@ -1,26 +1,17 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
- * All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted
- * provided that the following conditions are met: Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution, if any, must include the following acknowledgment: "This product includes software
- * developed by the University Corporation for Advanced Internet Development <http://www.ucaid.edu>Internet2 Project.
- * Alternately, this acknowledegement may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear. Neither the name of Shibboleth nor the names of its contributors, nor Internet2, nor
- * the University Corporation for Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote
- * products derived from this software without specific prior written permission. For written permission, please contact
- * shibboleth@shibboleth.org Products derived from this software may not be called Shibboleth, Internet2, UCAID, or the
- * University Corporation for Advanced Internet Development, nor may Shibboleth appear in their name, without prior
- * written permission of the University Corporation for Advanced Internet Development. THIS SOFTWARE IS PROVIDED BY THE
- * COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE
- * DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. IN NO
- * EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC.
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa;
@@ -70,8 +61,8 @@ public class AAAttribute extends SAMLAttribute implements ResolverAttribute, Arp
         */
        public AAAttribute(String name, boolean legacyCompat) throws SAMLException {
 
-               super(name, null, legacyCompat ? new QName("urn:mace:shibboleth:1.0",
-                               "AttributeValueType") : null, defaultLifetime, null);
+               super(name, null, legacyCompat ? new QName("urn:mace:shibboleth:1.0", "AttributeValueType") : null,
+                               defaultLifetime, null);
        }
 
        /**
index a0c62f2..1c52895 100644 (file)
@@ -1,50 +1,17 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa;
@@ -60,8 +27,7 @@ import edu.internet2.middleware.shibboleth.aa.attrresolv.ResolverAttribute;
 import edu.internet2.middleware.shibboleth.aa.attrresolv.ResolverAttributeSet;
 
 /**
- * A set of attributes for which the Shibboleth Attribute Authority has been asked
- * to provide assertions.
+ * A set of attributes for which the Shibboleth Attribute Authority has been asked to provide assertions.
  * 
  * @author Walter Hoehn (wassa@columbia.edu)
  */
@@ -70,43 +36,53 @@ public class AAAttributeSet implements ResolverAttributeSet, ArpAttributeSet {
        private HashMap attributes = new HashMap();
 
        public AAAttributeSet() {
+
        }
 
        public AAAttributeSet(AAAttribute attribute) {
+
                attributes.put(attribute.getName(), attribute);
        }
 
        public AAAttributeSet(AAAttribute[] attributes) {
+
                for (int i = 0; i < attributes.length; i++) {
                        this.attributes.put(attributes[i].getName(), attributes[i]);
                }
        }
 
        public void add(AAAttribute attribute) {
+
                attributes.put(attribute.getName(), attribute);
        }
 
        public ResolverAttribute getByName(String name) {
+
                return (ResolverAttribute) attributes.get(name);
        }
 
        public ShibAttributeIterator shibAttributeIterator() {
+
                return new ShibAttributeIterator(attributes.values().iterator());
        }
 
        public ResolverAttributeIterator resolverAttributeIterator() {
+
                return shibAttributeIterator();
        }
 
        public ArpAttributeIterator arpAttributeIterator() {
+
                return shibAttributeIterator();
        }
 
        public int size() {
+
                return attributes.size();
        }
 
        public SAMLAttribute[] getAttributes() {
+
                return (SAMLAttribute[]) attributes.values().toArray(new SAMLAttribute[0]);
        }
 
@@ -115,37 +91,43 @@ public class AAAttributeSet implements ResolverAttributeSet, ArpAttributeSet {
                private Iterator genericIterator;
 
                private ShibAttributeIterator(Iterator iterator) {
+
                        genericIterator = iterator;
                }
 
                public boolean hasNext() {
+
                        return genericIterator.hasNext();
                }
 
                public ResolverAttribute nextResolverAttribute() {
+
                        return nextShibAttribute();
                }
 
                public AAAttribute nextShibAttribute() {
+
                        return (AAAttribute) genericIterator.next();
                }
 
                public void remove() {
+
                        genericIterator.remove();
                }
 
                public ArpAttribute nextArpAttribute() {
+
                        return (ArpAttribute) genericIterator.next();
                }
 
        }
+
        /**
         * @see java.lang.Object#equals(java.lang.Object)
         */
        public boolean equals(Object object) {
-               if (!(object instanceof AAAttributeSet)) {
-                       return false;
-               }
+
+               if (!(object instanceof AAAttributeSet)) { return false; }
                return attributes.equals(((AAAttributeSet) object).attributes);
        }
 
@@ -153,6 +135,7 @@ public class AAAttributeSet implements ResolverAttributeSet, ArpAttributeSet {
         * @see java.lang.Object#toString()
         */
        public String toString() {
+
                StringBuffer buffer = new StringBuffer();
                buffer.append(attributes.size());
                for (Iterator iterator = attributes.values().iterator(); iterator.hasNext();) {
index 5772316..f14657c 100755 (executable)
@@ -1,64 +1,32 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa;
 
 /**
- *  Attribute Authority & Release Policy
- *  General Exception for AA problems
- *
- * @author     Parviz Dousti (dousti@cmu.edu)
- * @created    June, 2002
+ * Attribute Authority & Release Policy General Exception for AA problems
+ * 
+ * @author Parviz Dousti (dousti@cmu.edu)
+ * @created June, 2002
  */
 
 public class AAException extends Exception {
+
        public AAException(String s) {
+
                super(s);
        }
 }
index 5b52662..98425c4 100755 (executable)
@@ -1,50 +1,17 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
@@ -68,8 +35,8 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
 /**
- *  An Attribute Release Policy.
- *
+ * An Attribute Release Policy.
+ * 
  * @author Walter Hoehn (wassa@columbia.edu)
  */
 
@@ -90,6 +57,7 @@ public class Arp {
         */
 
        public Arp(Principal principal) {
+
                this.principal = principal;
        }
 
@@ -98,6 +66,7 @@ public class Arp {
         */
 
        public Arp() {
+
                sitePolicy = true;
        }
 
@@ -106,51 +75,57 @@ public class Arp {
         */
 
        public boolean isSitePolicy() {
+
                return sitePolicy;
        }
 
        /**
         * Returns the <code>Principal</code> for which this policy is applicable.
+        * 
         * @return Principal
         */
 
        public Principal getPrincipal() {
+
                return principal;
        }
 
        /**
         * Specify the <code>Principal</code> for which this policy is applicable.
-        * @param principal The principal
+        * 
+        * @param principal
+        *            The principal
         */
 
        public void setPrincipal(Principal principal) {
+
                sitePolicy = false;
                this.principal = principal;
        }
 
        /**
         * Creates an ARP structure from an xml representation.
-        * @param the xml <code>Element</code> containing the ARP structure.
+        * 
+        * @param the
+        *            xml <code>Element</code> containing the ARP structure.
         */
 
        public void marshall(Element xmlElement) throws ArpMarshallingException {
 
-               //Make sure we are deling with an ARP
-               if (!xmlElement.getTagName().equals("AttributeReleasePolicy")) {
-                       throw new ArpMarshallingException("Element data does not represent an ARP.");
-               }
+               // Make sure we are deling with an ARP
+               if (!xmlElement.getTagName().equals("AttributeReleasePolicy")) { throw new ArpMarshallingException(
+                               "Element data does not represent an ARP."); }
 
-               //Grab the description
+               // Grab the description
                NodeList descriptionNodes = xmlElement.getElementsByTagNameNS(arpNamespace, "Description");
                if (descriptionNodes.getLength() > 0) {
                        Element descriptionNode = (Element) descriptionNodes.item(0);
-                       if (descriptionNode.hasChildNodes()
-                               && descriptionNode.getFirstChild().getNodeType() == Node.TEXT_NODE) {
+                       if (descriptionNode.hasChildNodes() && descriptionNode.getFirstChild().getNodeType() == Node.TEXT_NODE) {
                                description = ((CharacterData) descriptionNode.getFirstChild()).getData();
                        }
                }
 
-               //Grab all of the Rule Elements and marshall them
+               // Grab all of the Rule Elements and marshall them
                NodeList ruleNodes = xmlElement.getElementsByTagNameNS(arpNamespace, "Rule");
                if (ruleNodes.getLength() > 0) {
                        for (int i = 0; i < ruleNodes.getLength(); i++) {
@@ -158,34 +133,31 @@ public class Arp {
                                try {
                                        rule.marshall((Element) ruleNodes.item(i));
                                } catch (ArpMarshallingException me) {
-                                       throw new ArpMarshallingException(
-                                               "Encountered a problem marshalling ARP Rules: " + me);
+                                       throw new ArpMarshallingException("Encountered a problem marshalling ARP Rules: " + me);
                                }
                                rules.add(rule);
                        }
 
                }
-               
-               //Retain Rule references
-               //Not enforced!
-               NodeList ruleReferenceNodes =
-                       xmlElement.getElementsByTagNameNS(arpNamespace, "RuleReference");
+
+               // Retain Rule references
+               // Not enforced!
+               NodeList ruleReferenceNodes = xmlElement.getElementsByTagNameNS(arpNamespace, "RuleReference");
                if (ruleReferenceNodes.getLength() > 0) {
-                       log.warn(
-                               "Encountered a Rule Reference while marshalling an ARP.  "
+                       log.warn("Encountered a Rule Reference while marshalling an ARP.  "
                                        + "References are currently unsupported by the ARP Engine.  Ignoring...");
                        ruleReferences = ruleReferenceNodes;
                }
 
-               //Retain attributes declared outside the scop of a rule
-               //Not enforced!
+               // Retain attributes declared outside the scop of a rule
+               // Not enforced!
                NodeList attributeNodes = xmlElement.getElementsByTagNameNS(Arp.arpNamespace, "Attribute");
                if (attributeNodes.getLength() > 0) {
                        for (int i = 0; i < attributeNodes.getLength(); i++) {
                                if (attributeNodes.item(i).getParentNode() == xmlElement) {
-                                       log.warn(
-                                               "Encountered an Attribute definition outside the scope of a Rule definition while marshalling an ARP.  "
-                                                       + "References are currently unsupported by the ARP Engine.  Ignoring...");
+                                       log
+                                                       .warn("Encountered an Attribute definition outside the scope of a Rule definition while marshalling an ARP.  "
+                                                                       + "References are currently unsupported by the ARP Engine.  Ignoring...");
                                        attributes.add(attributeNodes.item(i));
                                }
                        }
@@ -194,6 +166,7 @@ public class Arp {
 
        /**
         * Unmarshalls the <code>Arp</code> into an xml <code>Element</code>.
+        * 
         * @return the xml <code>Element</code>
         */
 
@@ -204,17 +177,12 @@ public class Arp {
                        docFactory.setNamespaceAware(true);
                        Document placeHolder = docFactory.newDocumentBuilder().newDocument();
 
-                       Element policyNode =
-                               placeHolder.createElementNS(arpNamespace, "AttributeReleasePolicy");
+                       Element policyNode = placeHolder.createElementNS(arpNamespace, "AttributeReleasePolicy");
                        policyNode.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns", arpNamespace);
-                       policyNode.setAttributeNS(
-                               "http://www.w3.org/2000/xmlns/",
-                               "xmlns:xsi",
-                               "http://www.w3.org/2001/XMLSchema-instance");
-                       policyNode.setAttributeNS(
-                               "http://www.w3.org/2001/XMLSchema-instance",
-                               "xsi:schemaLocation",
-                               "urn:mace:shibboleth:arp:1.0 shibboleth-arp-1.0.xsd");
+                       policyNode.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xsi",
+                                       "http://www.w3.org/2001/XMLSchema-instance");
+                       policyNode.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:schemaLocation",
+                                       "urn:mace:shibboleth:arp:1.0 shibboleth-arp-1.0.xsd");
                        if (description != null) {
                                Element descriptionNode = placeHolder.createElementNS(arpNamespace, "Description");
                                descriptionNode.appendChild(placeHolder.createTextNode(description));
@@ -248,7 +216,8 @@ public class Arp {
 
        /**
         * Returns all of the <code>Rule</code> objects that make up this policy.
-        * @return the rules 
+        * 
+        * @return the rules
         */
 
        public Rule[] getAllRules() {
@@ -258,30 +227,38 @@ public class Arp {
 
        /**
         * Returns the description for this <code>Arp</code> or null if no description is set.
+        * 
         * @return String
         */
 
        public String getDescription() {
+
                return description;
        }
 
        /**
         * Sets the description for this <code>Arp</code>.
-        * @param description The description to set
+        * 
+        * @param description
+        *            The description to set
         */
 
        public void setDescription(String description) {
+
                this.description = description;
        }
 
        /**
-        * Finds all of the rules contained in the <code>Arp</code> object that are applicable 
-        * to a particular request.
-        * @param requester the SHAR for this request
-        * @param resource the resource that the requestis made on behalf of
+        * Finds all of the rules contained in the <code>Arp</code> object that are applicable to a particular request.
+        * 
+        * @param requester
+        *            the SHAR for this request
+        * @param resource
+        *            the resource that the requestis made on behalf of
         * @return the matching <code>Rule</code> objects
         */
        public Rule[] getMatchingRules(String requester, URL resource) {
+
                Set effectiveSet = new HashSet();
                Iterator iterator = rules.iterator();
                while (iterator.hasNext()) {
@@ -295,9 +272,12 @@ public class Arp {
 
        /**
         * Adds an ARP Rule to this <code>ARP</code>.
-        * @param rule the <code>Rule</code> to add
+        * 
+        * @param rule
+        *            the <code>Rule</code> to add
         */
        public void addRule(Rule rule) {
+
                rules.add(rule);
        }
 
index bebd468..95442f2 100755 (executable)
@@ -1,52 +1,19 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package edu.internet2.middleware.shibboleth.aa.arp;
 
 import java.util.Iterator;
@@ -60,6 +27,8 @@ import java.util.Iterator;
 public interface ArpAttribute {
 
        public String getName();
+
        public void setValues(Object[] value);
+
        public Iterator getValues();
 }
index 9ab7e99..968721b 100644 (file)
@@ -1,50 +1,17 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
index 095af28..337f94f 100755 (executable)
@@ -1,38 +1,17 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
- * following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following
- * disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the distribution, if any, must include the
- * following acknowledgment: "This product includes software developed by the University Corporation for Advanced
- * Internet Development <http://www.ucaid.edu> Internet2 Project. Alternately, this acknowledegement may appear in the
- * software itself, if and wherever such third-party acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor Internet2, nor the University Corporation for
- * Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote products derived from this software
- * without specific prior written permission. For written permission, please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, UCAID, or the University Corporation
- * for Advanced Internet Development, nor may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE,
- * ACCURACY, AND EFFORT IS WITH LICENSEE. IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
@@ -74,19 +53,19 @@ public class ArpEngine {
        private ArpRepository repository;
        private static Map matchFunctions = Collections.synchronizedMap(new HashMap());
        static {
-               //Initialize built-in match functions
+               // Initialize built-in match functions
                try {
-                       
+
                        // Current
                        matchFunctions.put(new URI("urn:mace:shibboleth:arp:matchFunction:regexMatch"),
                                        "edu.internet2.middleware.shibboleth.aa.arp.provider.RegexMatchFunction");
                        matchFunctions.put(new URI("urn:mace:shibboleth:arp:matchFunction:regexNotMatch"),
-                       "edu.internet2.middleware.shibboleth.aa.arp.provider.RegexNotMatchFunction");
+                                       "edu.internet2.middleware.shibboleth.aa.arp.provider.RegexNotMatchFunction");
                        matchFunctions.put(new URI("urn:mace:shibboleth:arp:matchFunction:stringMatch"),
                                        "edu.internet2.middleware.shibboleth.aa.arp.provider.StringValueMatchFunction");
                        matchFunctions.put(new URI("urn:mace:shibboleth:arp:matchFunction:stringNotMatch"),
-                       "edu.internet2.middleware.shibboleth.aa.arp.provider.StringValueNotMatchFunction");
-                       
+                                       "edu.internet2.middleware.shibboleth.aa.arp.provider.StringValueNotMatchFunction");
+
                        // Legacy
                        matchFunctions.put(new URI("urn:mace:shibboleth:arp:matchFunction:exactShar"),
                                        "edu.internet2.middleware.shibboleth.aa.arp.provider.StringValueMatchFunction");
@@ -94,7 +73,7 @@ public class ArpEngine {
                                        "edu.internet2.middleware.shibboleth.aa.arp.provider.ResourceTreeMatchFunction");
                        matchFunctions.put(new URI("urn:mace:shibboleth:arp:matchFunction:stringValue"),
                                        "edu.internet2.middleware.shibboleth.aa.arp.provider.StringValueMatchFunction");
-                       
+
                } catch (URISyntaxException e) {
                        log.error("Error mapping standard match functions: " + e);
                }
@@ -108,16 +87,13 @@ public class ArpEngine {
         */
        public ArpEngine(Element config) throws ArpException {
 
-               if (!config.getLocalName().equals("ReleasePolicyEngine")) {
-                       throw new IllegalArgumentException();
-               }
+               if (!config.getLocalName().equals("ReleasePolicyEngine")) { throw new IllegalArgumentException(); }
 
-               NodeList itemElements =
-                       config.getElementsByTagNameNS(IdPConfig.configNameSpace, "ArpRepository");
+               NodeList itemElements = config.getElementsByTagNameNS(IdPConfig.configNameSpace, "ArpRepository");
 
                if (itemElements.getLength() > 1) {
-                       log.warn(
-                               "Encountered multiple <ArpRepository> configuration elements.  Arp Engine currently only supports one.  Using first...");
+                       log
+                                       .warn("Encountered multiple <ArpRepository> configuration elements.  Arp Engine currently only supports one.  Using first...");
                }
 
                if (itemElements.getLength() == 0) {
@@ -134,6 +110,7 @@ public class ArpEngine {
        }
 
        public ArpEngine(ArpRepository preLoadedRepository) throws ArpException {
+
                repository = preLoadedRepository;
        }
 
@@ -151,12 +128,9 @@ public class ArpEngine {
                try {
                        placeHolder = docFactory.newDocumentBuilder().newDocument();
 
-                       Element defRepository =
-                               placeHolder.createElementNS(IdPConfig.configNameSpace, "ArpRepository");
-                       defRepository.setAttributeNS(
-                               IdPConfig.configNameSpace,
-                               "implementation",
-                               "edu.internet2.middleware.shibboleth.aa.arp.provider.FileSystemArpRepository");
+                       Element defRepository = placeHolder.createElementNS(IdPConfig.configNameSpace, "ArpRepository");
+                       defRepository.setAttributeNS(IdPConfig.configNameSpace, "implementation",
+                                       "edu.internet2.middleware.shibboleth.aa.arp.provider.FileSystemArpRepository");
 
                        Element path = placeHolder.createElementNS(IdPConfig.configNameSpace, "Path");
                        Text text = placeHolder.createTextNode("/conf/arps/");
@@ -176,15 +150,14 @@ public class ArpEngine {
        }
 
        public static MatchFunction lookupMatchFunction(URI functionIdentifier) throws ArpException {
+
                String className = null;
 
                synchronized (matchFunctions) {
                        className = (String) matchFunctions.get(functionIdentifier);
                }
 
-               if (className == null) {
-                       return null;
-               }
+               if (className == null) { return null; }
                try {
                        Class matchFunction = Class.forName(className);
                        Object functionObject = matchFunction.newInstance();
@@ -192,8 +165,8 @@ public class ArpEngine {
                                return (MatchFunction) functionObject;
                        } else {
                                log.error("Improperly specified match function, (" + className + ") is not a match function.");
-                               throw new ArpException(
-                                       "Improperly specified match function, (" + className + ") is not a match function.");
+                               throw new ArpException("Improperly specified match function, (" + className
+                                               + ") is not a match function.");
                        }
                } catch (Exception e) {
                        log.error("Could not load Match Function: (" + className + "): " + e);
@@ -202,6 +175,7 @@ public class ArpEngine {
        }
 
        private Arp createEffectiveArp(Principal principal, String requester, URL resource) throws ArpProcessingException {
+
                try {
                        Arp effectiveArp = new Arp(principal);
                        effectiveArp.setDescription("Effective ARP.");
@@ -212,12 +186,12 @@ public class ArpEngine {
                                log.debug("Creating effective ARP from (" + userPolicies.length + ") polic(y|ies).");
                                try {
                                        for (int i = 0; userPolicies.length > i; i++) {
-                                               String dump=Parser.serialize(userPolicies[i].unmarshall());
+                                               String dump = Parser.serialize(userPolicies[i].unmarshall());
                                                log.debug("Dumping ARP:" + System.getProperty("line.separator") + dump);
                                        }
                                } catch (Exception e) {
-                                       log.error(
-                                               "Encountered a strange error while writing ARP debug messages.  This should never happen.");
+                                       log
+                                                       .error("Encountered a strange error while writing ARP debug messages.  This should never happen.");
                                }
                        }
 
@@ -237,14 +211,15 @@ public class ArpEngine {
        }
 
        /**
-        * Determines which attributes MIGHT be releasable for a given request. This function may be used to determine
-        * which attributes to resolve when a request for all attributes is made. This is done for performance reasons
-        * only. ie: The resulting attributes must still be filtered before release.
+        * Determines which attributes MIGHT be releasable for a given request. This function may be used to determine which
+        * attributes to resolve when a request for all attributes is made. This is done for performance reasons only. ie:
+        * The resulting attributes must still be filtered before release.
         * 
         * @return an array of <code>URI</code> objects that name the possible attributes
         */
        public URI[] listPossibleReleaseAttributes(Principal principal, String requester, URL resource)
-               throws ArpProcessingException {
+                       throws ArpProcessingException {
+
                Set possibleReleaseSet = new HashSet();
                Set anyValueDenies = new HashSet();
                Rule[] rules = createEffectiveArp(principal, requester, resource).getAllRules();
@@ -283,7 +258,7 @@ public class ArpEngine {
         * @return the attributes to be released
         */
        public void filterAttributes(ArpAttributeSet attributes, Principal principal, String requester, URL resource)
-               throws ArpProcessingException {
+                       throws ArpProcessingException {
 
                ArpAttributeIterator iterator = attributes.arpAttributeIterator();
                if (!iterator.hasNext()) {
@@ -299,7 +274,7 @@ public class ArpEngine {
                        }
                }
 
-               //Gather all applicable ARP attribute specifiers
+               // Gather all applicable ARP attribute specifiers
                Set attributeNames = new HashSet();
                for (ArpAttributeIterator nameIterator = attributes.arpAttributeIterator(); nameIterator.hasNext();) {
                        attributeNames.add(nameIterator.nextArpAttribute().getName());
@@ -315,34 +290,34 @@ public class ArpEngine {
                        }
                }
 
-               //Canonicalize specifiers
-               Map arpAttributeSpecs =
-                       createCanonicalAttributeSpec((Rule.Attribute[]) applicableRuleAttributes.toArray(new Rule.Attribute[0]));
+               // Canonicalize specifiers
+               Map arpAttributeSpecs = createCanonicalAttributeSpec((Rule.Attribute[]) applicableRuleAttributes
+                               .toArray(new Rule.Attribute[0]));
 
-               //Filter
+               // Filter
                for (ArpAttributeIterator returnIterator = attributes.arpAttributeIterator(); returnIterator.hasNext();) {
 
                        ArpAttribute arpAttribute = returnIterator.nextArpAttribute();
                        Rule.Attribute attribute = (Rule.Attribute) arpAttributeSpecs.get(arpAttribute.getName());
 
-                       //Handle no specifier
+                       // Handle no specifier
                        if (attribute == null) {
                                returnIterator.remove();
                                continue;
                        }
 
-                       //Handle Deny All
+                       // Handle Deny All
                        if (attribute.denyAnyValue()) {
                                returnIterator.remove();
                                continue;
                        }
 
-                       //Handle Permit All
+                       // Handle Permit All
                        if (attribute.releaseAnyValue() && attribute.getValues().length == 0) {
                                continue;
                        }
 
-                       //Handle "Permit All-Except" and "Permit Specific"
+                       // Handle "Permit All-Except" and "Permit Specific"
                        ArrayList releaseValues = new ArrayList();
                        for (Iterator valueIterator = arpAttribute.getValues(); valueIterator.hasNext();) {
                                Object value = valueIterator.next();
@@ -361,6 +336,7 @@ public class ArpEngine {
        }
 
        private Map createCanonicalAttributeSpec(Rule.Attribute[] attributes) {
+
                Map canonicalSpec = new HashMap();
                for (int i = 0; attributes.length > i; i++) {
                        if (!canonicalSpec.containsKey(attributes[i].getName().toString())) {
@@ -389,6 +365,7 @@ public class ArpEngine {
         * Cleanup resources that won't be released when this object is garbage-collected
         */
        public void destroy() {
+
                repository.destroy();
        }
 
index 784890c..fb3723e 100755 (executable)
@@ -1,61 +1,30 @@
 /*
- * The Shibboleth License, Version 1.
- * Copyright (c) 2002
- * University Corporation for Advanced Internet Development, Inc.
- * All rights reserved
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
  *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- *
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- *
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
 
 /**
  * A generic error occurred relating to Attribute Release Policies
- *
+ * 
  * @author Walter Hoehn (wassa&#064;columbia.edu)
  */
 public class ArpException extends Exception {
+
        public ArpException(String message) {
+
                super(message);
        }
 }
index cecad7d..8866a28 100755 (executable)
@@ -1,50 +1,17 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
@@ -58,8 +25,8 @@ package edu.internet2.middleware.shibboleth.aa.arp;
 public class ArpMarshallingException extends ArpException {
 
        public ArpMarshallingException(String message) {
+
                super(message);
        }
 
 }
-
index 9ea43fc..4b268df 100755 (executable)
@@ -1,62 +1,30 @@
 /*
- * The Shibboleth License, Version 1.
- * Copyright (c) 2002
- * University Corporation for Advanced Internet Development, Inc.
- * All rights reserved
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
  *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- *
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- *
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
 
 /**
- * Indicates an error occurred while evaluating one or more Attribute Release
- * Policies.
- *
+ * Indicates an error occurred while evaluating one or more Attribute Release Policies.
+ * 
  * @author Walter Hoehn (wassa&#064;columbia.edu)
  */
 public class ArpProcessingException extends ArpException {
+
        public ArpProcessingException(String message) {
+
                super(message);
        }
 }
index b890de6..a28fa43 100755 (executable)
@@ -1,50 +1,17 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
@@ -52,29 +19,26 @@ package edu.internet2.middleware.shibboleth.aa.arp;
 import java.security.Principal;
 
 /**
- *  Defines interaction with an <code>Arp</code> storage/retrieval mechanism.
- *
+ * Defines interaction with an <code>Arp</code> storage/retrieval mechanism.
+ * 
  * @author Walter Hoehn (wassa@columbia.edu)
  */
 
 public interface ArpRepository {
 
        /**
-        * Searches the repository for all Attribute Release Policies associated
-        * with the named <code>Principal</code>
+        * Searches the repository for all Attribute Release Policies associated with the named <code>Principal</code>
         * 
-        * @return instances of <code>Arp</code> or null
-        *  if no associated policies are found in the repository 
+        * @return instances of <code>Arp</code> or null if no associated policies are found in the repository
         */
 
        public Arp[] getAllPolicies(Principal principal) throws ArpRepositoryException;
 
        /**
-        * Retrieves the "User" Attribute Release Policy associated
-        * with the named <code>Principal</code>
+        * Retrieves the "User" Attribute Release Policy associated with the named <code>Principal</code>
         * 
-        * @return aninstance of <code>Arp</code> or null
-        *  if no User policy is found in the repository for the <code>Principal</code> 
+        * @return aninstance of <code>Arp</code> or null if no User policy is found in the repository for the
+        *         <code>Principal</code>
         */
 
        public Arp getUserPolicy(Principal principal) throws ArpRepositoryException;
@@ -82,15 +46,14 @@ public interface ArpRepository {
        /**
         * Retrieves the "Site" Attribute Release Policy
         * 
-        * @return an instance of <code>Arp</code> or null
-        *  if no Site policy is defined in the repository
+        * @return an instance of <code>Arp</code> or null if no Site policy is defined in the repository
         */
 
        public Arp getSitePolicy() throws ArpRepositoryException;
 
        /**
-        * If a matching <code>Arp</code> is found in the repository, it is replaced with the 
-        * specified <code>Arp</code>.  If not, the <code>Arp</code> is added to the repository.
+        * If a matching <code>Arp</code> is found in the repository, it is replaced with the specified <code>Arp</code>.
+        * If not, the <code>Arp</code> is added to the repository.
         */
 
        public void update(Arp arp) throws ArpRepositoryException;
index 71cf16f..d49890b 100755 (executable)
@@ -1,50 +1,17 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
@@ -58,6 +25,7 @@ package edu.internet2.middleware.shibboleth.aa.arp;
 public class ArpRepositoryException extends ArpException {
 
        public ArpRepositoryException(String message) {
+
                super(message);
        }
 
index 57b4b4b..122981a 100755 (executable)
@@ -1,48 +1,17 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation
- * for Advanced Internet Development, Inc. All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu> Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
@@ -53,11 +22,11 @@ import org.apache.log4j.Logger;
 import org.w3c.dom.Element;
 
 /**
- * Factory for generating instances of <code>ArpRepository</code>.
- * Configuration is delegated to the Arp Repository. Runtime options are passed
- * to concrete constructors via an <ArpRepository/> element.
+ * Factory for generating instances of <code>ArpRepository</code>. Configuration is delegated to the Arp Repository.
+ * Runtime options are passed to concrete constructors via an <ArpRepository/>element.
  * 
- * @author Parviz Dousti (dousti@cmu.edu) @created June, 2002
+ * @author Parviz Dousti (dousti@cmu.edu)
+ * @created June, 2002
  */
 
 public class ArpRepositoryFactory {
@@ -66,9 +35,8 @@ public class ArpRepositoryFactory {
 
        public static ArpRepository getInstance(Element repositoryConfig) throws ArpRepositoryException {
 
-               if (repositoryConfig.getAttribute("implementation") == null) {
-                       throw new ArpRepositoryException("No ARP Repository implementaiton specified.");
-               }
+               if (repositoryConfig.getAttribute("implementation") == null) { throw new ArpRepositoryException(
+                               "No ARP Repository implementaiton specified."); }
                try {
                        Class implementorClass = Class.forName(repositoryConfig.getAttribute("implementation"));
                        Class[] params = new Class[1];
@@ -80,8 +48,7 @@ public class ArpRepositoryFactory {
                        return (ArpRepository) implementorConstructor.newInstance(args);
 
                } catch (NoSuchMethodException nsme) {
-                       log.error(
-                               "Failed to instantiate an Arp Repository: ArpRepository "
+                       log.error("Failed to instantiate an Arp Repository: ArpRepository "
                                        + "implementation must contain a constructor that accepts an <ArpRepository> element as "
                                        + "configuration data.");
                        throw new ArpRepositoryException("Failed to instantiate an Arp Repository.");
index ca4a9fd..bf0ca5c 100755 (executable)
@@ -1,66 +1,31 @@
 /*
- * The Shibboleth License, Version 1.
- * Copyright (c) 2002
- * University Corporation for Advanced Internet Development, Inc.
- * All rights reserved
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
  *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- *
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- *
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
 
 /**
- * Defines an method for determining whether an ARP Rule is applicable to a
- * particular request
- *
+ * Defines an method for determining whether an ARP Rule is applicable to a particular request
+ * 
  * @author Walter Hoehn (wassa&#064;columbia.edu)
  */
 public interface MatchFunction {
+
        /**
-        * Boolean indication of whether the specified ARP component matches the
-        * specified Request component.  Used to determine if an ARP is applicable
-        * to a particular request.
+        * Boolean indication of whether the specified ARP component matches the specified Request component. Used to
+        * determine if an ARP is applicable to a particular request.
         */
-       public boolean match(Object arpComponent, Object requestComponent)
-               throws MatchingException;
+       public boolean match(Object arpComponent, Object requestComponent) throws MatchingException;
 }
index 66392e0..125f135 100755 (executable)
@@ -1,61 +1,30 @@
 /*
- * The Shibboleth License, Version 1.
- * Copyright (c) 2002
- * University Corporation for Advanced Internet Development, Inc.
- * All rights reserved
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
  *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- *
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- *
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
 
 /**
  * Signals that an error occurred while processing an ARP match function.
- *
+ * 
  * @author Walter Hoehn (wassa&#064;columbia.edu)
  */
 public class MatchingException extends ArpException {
+
        public MatchingException(String message) {
+
                super(message);
        }
 }
index 89ebb4e..96fca44 100755 (executable)
@@ -1,50 +1,17 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp;
@@ -69,8 +36,8 @@ import org.w3c.dom.NodeList;
 import org.w3c.dom.Text;
 
 /**
- *  An Attribute Release Policy Rule.
- *
+ * An Attribute Release Policy Rule.
+ * 
  * @author Walter Hoehn (wassa@columbia.edu)
  */
 
@@ -86,33 +53,41 @@ public class Rule {
 
        /**
         * Returns the description for this <code>Rule</code>.
+        * 
         * @return String
         */
 
        public String getDescription() {
+
                return description;
        }
 
        /**
         * Sets the description for this <code>Rule</code>.
-        * @param description The description to set
+        * 
+        * @param description
+        *            The description to set
         */
 
        public void setDescription(String description) {
+
                this.description = description;
        }
 
        /**
         * Returns all of the attribute specifications associated with this Rule.
+        * 
         * @return the attributes
         */
 
        public Attribute[] getAttributes() {
+
                return (Attribute[]) attributes.toArray(new Attribute[0]);
        }
 
        /**
         * Unmarshalls the <code>Rule</code> into an xml <code>Element</code>.
+        * 
         * @return the xml <code>Element</code>
         */
 
@@ -121,7 +96,7 @@ public class Rule {
                try {
                        Document placeHolder = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
                        Element ruleNode = placeHolder.createElementNS(Arp.arpNamespace, "Rule");
-                       
+
                        if (identifier != null) {
                                ruleNode.setAttributeNS(Arp.arpNamespace, "identifier", identifier.toString());
                        }
@@ -134,15 +109,13 @@ public class Rule {
                        ruleNode.appendChild(placeHolder.importNode(target.unmarshall(), true));
                        Iterator attrIterator = attributes.iterator();
                        while (attrIterator.hasNext()) {
-                               ruleNode.appendChild(
-                                       placeHolder.importNode(((Attribute) attrIterator.next()).unmarshall(), true));
+                               ruleNode.appendChild(placeHolder.importNode(((Attribute) attrIterator.next()).unmarshall(), true));
                        }
-                       
+
                        if (attributeReferences != null) {
-                               for (int i = 0;i < attributeReferences.getLength();i++) {
-                                       ruleNode.appendChild(
-                                       placeHolder.importNode(attributeReferences.item(i), true));
-                               }       
+                               for (int i = 0; i < attributeReferences.getLength(); i++) {
+                                       ruleNode.appendChild(placeHolder.importNode(attributeReferences.item(i), true));
+                               }
                        }
                        return ruleNode;
                } catch (ParserConfigurationException e) {
@@ -153,18 +126,20 @@ public class Rule {
 
        /**
         * Creates an ARP Rule from an xml representation.
-        * @param element the xml <code>Element</code> containing the ARP Rule.
+        * 
+        * @param element
+        *            the xml <code>Element</code> containing the ARP Rule.
         */
 
        public void marshall(Element element) throws ArpMarshallingException {
 
-               //Make sure we are dealing with a Rule
+               // Make sure we are dealing with a Rule
                if (!element.getTagName().equals("Rule")) {
                        log.error("Element data does not represent an ARP Rule.");
                        throw new ArpMarshallingException("Element data does not represent an ARP Rule.");
                }
 
-               //Get the rule identifier
+               // Get the rule identifier
                try {
                        if (element.hasAttribute("identifier")) {
                                identifier = new URI(element.getAttribute("identifier"));
@@ -174,30 +149,27 @@ public class Rule {
                        throw new ArpMarshallingException("Rule not identified by a proper URI.");
                }
 
-               //Grab the description
+               // Grab the description
                NodeList descriptionNodes = element.getElementsByTagNameNS(Arp.arpNamespace, "Description");
                if (descriptionNodes.getLength() > 0) {
                        Element descriptionNode = (Element) descriptionNodes.item(0);
-                       if (descriptionNode.hasChildNodes()
-                               && descriptionNode.getFirstChild().getNodeType() == Node.TEXT_NODE) {
+                       if (descriptionNode.hasChildNodes() && descriptionNode.getFirstChild().getNodeType() == Node.TEXT_NODE) {
                                description = ((CharacterData) descriptionNode.getFirstChild()).getData();
                        }
                }
 
-               //Create the Target
+               // Create the Target
                NodeList targetNodes = element.getElementsByTagNameNS(Arp.arpNamespace, "Target");
                if (targetNodes.getLength() != 1) {
-                       log.error(
-                               "Element data does not represent an ARP Rule.  An ARP Rule must contain 1 and "
+                       log.error("Element data does not represent an ARP Rule.  An ARP Rule must contain 1 and "
                                        + "only 1 Target definition.");
-                       throw new ArpMarshallingException(
-                               "Element data does not represent an ARP Rule.  An"
+                       throw new ArpMarshallingException("Element data does not represent an ARP Rule.  An"
                                        + " ARP Rule must contain 1 and only 1 Target definition.");
                }
                target = new Target();
                target.marshall((Element) targetNodes.item(0));
 
-               //Create the Attributes
+               // Create the Attributes
                NodeList attributeNodes = element.getElementsByTagNameNS(Arp.arpNamespace, "Attribute");
                for (int i = 0; attributeNodes.getLength() > i; i++) {
                        Attribute attribute = new Attribute();
@@ -205,13 +177,11 @@ public class Rule {
                        attributes.add(attribute);
                }
 
-               //Retain Attribute references
-               //Not enforced!
-               NodeList attributeReferenceNodes =
-                       element.getElementsByTagNameNS(Arp.arpNamespace, "AttributeReference");
+               // Retain Attribute references
+               // Not enforced!
+               NodeList attributeReferenceNodes = element.getElementsByTagNameNS(Arp.arpNamespace, "AttributeReference");
                if (attributeReferenceNodes.getLength() > 0) {
-                       log.warn(
-                               "Encountered an Attribute Reference while marshalling an ARP.  "
+                       log.warn("Encountered an Attribute Reference while marshalling an ARP.  "
                                        + "References are currently unsupported by the ARP Engine.  Ignoring...");
                        attributeReferences = attributeReferenceNodes;
                }
@@ -219,39 +189,31 @@ public class Rule {
 
        /**
         * Returns a boolean indication of whether this rule is applicable to a given attribute request.
-        * @param requester the SHAR making the request
-        * @param resource the resource on behalf of which the request is being made
+        * 
+        * @param requester
+        *            the SHAR making the request
+        * @param resource
+        *            the resource on behalf of which the request is being made
         */
 
        public boolean matchesRequest(String requester, URL resource) {
-               if (target.matchesAny()) {
-                       return true;
-               }
-               
-               if (requester == null) {
-                       return false;
-               }
-               
+
+               if (target.matchesAny()) { return true; }
+
+               if (requester == null) { return false; }
+
                try {
-                       MatchFunction requesterFunction =
-                               ArpEngine.lookupMatchFunction(target.getRequester().getMatchFunctionIdentifier());
-                       if (!requesterFunction.match(target.getRequester().getValue(), requester)) {
-                               return false;
-                       }
-                       
-                       if (target.getResource().matchesAny()) {
-                               return true;
-                       }
-                       
-                       if (resource == null) {
-                               return false;
-                       }
-                       
-                       MatchFunction resourceFunction =
-                               ArpEngine.lookupMatchFunction(target.getResource().getMatchFunctionIdentifier());
-                       if (resourceFunction.match(target.getResource().getValue(), resource)) {
-                               return true;
-                       }
+                       MatchFunction requesterFunction = ArpEngine.lookupMatchFunction(target.getRequester()
+                                       .getMatchFunctionIdentifier());
+                       if (!requesterFunction.match(target.getRequester().getValue(), requester)) { return false; }
+
+                       if (target.getResource().matchesAny()) { return true; }
+
+                       if (resource == null) { return false; }
+
+                       MatchFunction resourceFunction = ArpEngine.lookupMatchFunction(target.getResource()
+                                       .getMatchFunctionIdentifier());
+                       if (resourceFunction.match(target.getResource().getValue(), resource)) { return true; }
                        return false;
                } catch (ArpException e) {
                        log.warn("Encountered a problem while trying to find matching ARP rules: " + e);
@@ -260,20 +222,21 @@ public class Rule {
        }
 
        class Target {
+
                private Requester requester = null;
                private Resource resource = null;
                private boolean matchesAny = false;
 
                /**
                 * Unmarshalls the <code>Rule.Target</code> into an xml <code>Element</code>.
+                * 
                 * @return the xml <code>Element</code>
                 */
 
                Element unmarshall() throws ArpMarshallingException {
 
                        try {
-                               Document placeHolder =
-                                       DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
+                               Document placeHolder = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
                                Element targetNode = placeHolder.createElementNS(Arp.arpNamespace, "Target");
 
                                if (matchesAny) {
@@ -297,41 +260,44 @@ public class Rule {
 
                /**
                 * Creates an ARP Rule Target from an xml representation.
-                * @param element the xml <code>Element</code> containing the ARP Rule.
+                * 
+                * @param element
+                *            the xml <code>Element</code> containing the ARP Rule.
                 */
                void marshall(Element element) throws ArpMarshallingException {
 
-                       //Make sure we are dealing with a Target
+                       // Make sure we are dealing with a Target
                        if (!element.getTagName().equals("Target")) {
                                log.error("Element data does not represent an ARP Rule Target.");
                                throw new ArpMarshallingException("Element data does not represent an ARP Rule target.");
                        }
 
-                       //Handle <AnyTarget/> definitions
+                       // Handle <AnyTarget/> definitions
                        NodeList anyTargetNodeList = element.getElementsByTagNameNS(Arp.arpNamespace, "AnyTarget");
                        if (anyTargetNodeList.getLength() == 1) {
                                matchesAny = true;
                                return;
                        }
 
-                       //Create Requester
+                       // Create Requester
                        NodeList requesterNodeList = element.getElementsByTagNameNS(Arp.arpNamespace, "Requester");
                        if (requesterNodeList.getLength() == 1) {
                                requester = new Requester();
                                requester.marshall((Element) requesterNodeList.item(0));
                        } else {
                                log.error("ARP Rule Target contains invalid data: incorrectly specified <Requester>.");
-                               throw new ArpMarshallingException("ARP Rule Target contains invalid data: incorrectly specified <Requester>.");
+                               throw new ArpMarshallingException(
+                                               "ARP Rule Target contains invalid data: incorrectly specified <Requester>.");
                        }
 
-                       //Handle <AnyResource/>
+                       // Handle <AnyResource/>
                        NodeList anyResourceNodeList = element.getElementsByTagNameNS(Arp.arpNamespace, "AnyResource");
                        if (anyResourceNodeList.getLength() == 1) {
                                resource = new Resource();
                                return;
                        }
 
-                       //Create Resource
+                       // Create Resource
                        NodeList resourceNodeList = element.getElementsByTagNameNS(Arp.arpNamespace, "Resource");
                        if (resourceNodeList.getLength() == 1) {
                                resource = new Resource();
@@ -342,46 +308,59 @@ public class Rule {
                }
 
                boolean matchesAny() {
+
                        return matchesAny;
                }
+
                Requester getRequester() {
+
                        return requester;
                }
+
                Resource getResource() {
+
                        return resource;
                }
        }
 
        class Resource {
+
                private String value;
                private URI matchFunctionIdentifier;
                private boolean matchesAny;
+
                Resource() {
+
                        matchesAny = true;
                }
+
                boolean matchesAny() {
+
                        return matchesAny;
                }
+
                URI getMatchFunctionIdentifier() {
+
                        return matchFunctionIdentifier;
                }
+
                String getValue() {
+
                        return value;
                }
 
                /**
                 * Unmarshalls the <code>Rule.Resource</code> into an xml <code>Element</code>.
+                * 
                 * @return the xml <code>Element</code>
                 */
 
                Element unmarshall() throws ArpMarshallingException {
 
                        try {
-                               Document placeHolder =
-                                       DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
+                               Document placeHolder = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
                                Element resourceNode = placeHolder.createElementNS(Arp.arpNamespace, "Resource");
-                               if (!matchFunctionIdentifier
-                                       .equals(new URI("urn:mace:shibboleth:arp:matchFunction:resourceTree"))) {
+                               if (!matchFunctionIdentifier.equals(new URI("urn:mace:shibboleth:arp:matchFunction:resourceTree"))) {
                                        resourceNode.setAttributeNS(Arp.arpNamespace, "matchFunction", matchFunctionIdentifier.toString());
                                }
                                Text valueNode = placeHolder.createTextNode(value);
@@ -399,19 +378,21 @@ public class Rule {
 
                /**
                 * Creates an ARP Rule Target Resource from an xml representation.
-                * @param element the xml <code>Element</code> containing the ARP Rule.
+                * 
+                * @param element
+                *            the xml <code>Element</code> containing the ARP Rule.
                 */
                void marshall(Element element) throws ArpMarshallingException {
 
                        matchesAny = false;
 
-                       //Make sure we are deling with a Resource
+                       // Make sure we are deling with a Resource
                        if (!element.getTagName().equals("Resource")) {
                                log.error("Element data does not represent an ARP Rule Target.");
                                throw new ArpMarshallingException("Element data does not represent an ARP Rule target.");
                        }
 
-                       //Grab the value
+                       // Grab the value
                        if (element.hasChildNodes() && element.getFirstChild().getNodeType() == Node.TEXT_NODE) {
                                value = ((CharacterData) element.getFirstChild()).getData();
                        } else {
@@ -419,7 +400,7 @@ public class Rule {
                                throw new ArpMarshallingException("Element data does not represent an ARP Rule target.");
                        }
 
-                       //Grab the match function
+                       // Grab the match function
                        try {
                                if (element.hasAttribute("matchFunction")) {
                                        matchFunctionIdentifier = new URI(element.getAttribute("matchFunction"));
@@ -434,28 +415,32 @@ public class Rule {
        }
 
        class Requester {
+
                private String value;
                private URI matchFunctionIdentifier;
+
                URI getMatchFunctionIdentifier() {
+
                        return matchFunctionIdentifier;
                }
+
                String getValue() {
+
                        return value;
                }
 
                /**
                 * Unmarshalls the <code>Rule.Requester</code> into an xml <code>Element</code>.
+                * 
                 * @return the xml <code>Element</code>
                 */
 
                Element unmarshall() throws ArpMarshallingException {
 
                        try {
-                               Document placeHolder =
-                                       DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
+                               Document placeHolder = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
                                Element requesterNode = placeHolder.createElementNS(Arp.arpNamespace, "Requester");
-                               if (!matchFunctionIdentifier
-                                       .equals(new URI("urn:mace:shibboleth:arp:matchFunction:stringMatch"))) {
+                               if (!matchFunctionIdentifier.equals(new URI("urn:mace:shibboleth:arp:matchFunction:stringMatch"))) {
                                        requesterNode.setAttributeNS(Arp.arpNamespace, "matchFunction", matchFunctionIdentifier.toString());
                                }
                                Text valueNode = placeHolder.createTextNode(value);
@@ -473,16 +458,19 @@ public class Rule {
 
                /**
                 * Creates an ARP Rule Target Requester from an xml representation.
-                * @param element the xml <code>Element</code> containing the ARP Rule.
+                * 
+                * @param element
+                *            the xml <code>Element</code> containing the ARP Rule.
                 */
                void marshall(Element element) throws ArpMarshallingException {
-                       //Make sure we are deling with a Requester
+
+                       // Make sure we are deling with a Requester
                        if (!element.getTagName().equals("Requester")) {
                                log.error("Element data does not represent an ARP Rule Target.");
                                throw new ArpMarshallingException("Element data does not represent an ARP Rule target.");
                        }
 
-                       //Grab the value
+                       // Grab the value
                        if (element.hasChildNodes() && element.getFirstChild().getNodeType() == Node.TEXT_NODE) {
                                value = ((CharacterData) element.getFirstChild()).getData();
                        } else {
@@ -490,7 +478,7 @@ public class Rule {
                                throw new ArpMarshallingException("Element data does not represent an ARP Rule target.");
                        }
 
-                       //Grab the match function
+                       // Grab the match function
                        try {
                                if (element.hasAttribute("matchFunction")) {
                                        matchFunctionIdentifier = new URI(element.getAttribute("matchFunction"));
@@ -505,7 +493,7 @@ public class Rule {
        }
 
        class Attribute {
-               
+
                private URI name;
                private boolean anyValue = false;
                private String anyValueRelease = "permit";
@@ -513,20 +501,19 @@ public class Rule {
                private URI identifier;
 
                boolean releaseAnyValue() {
-                       if (anyValueRelease.equals("permit")) {
-                               return anyValue;
-                       }
+
+                       if (anyValueRelease.equals("permit")) { return anyValue; }
                        return false;
                }
 
                boolean denyAnyValue() {
-                       if (anyValueRelease.equals("deny")) {
-                               return anyValue;
-                       }
+
+                       if (anyValueRelease.equals("deny")) { return anyValue; }
                        return false;
                }
 
                void setAnyValueDeny(boolean b) {
+
                        if (b) {
                                anyValue = true;
                                anyValueRelease = "deny";
@@ -539,17 +526,14 @@ public class Rule {
                }
 
                boolean isValuePermitted(Object value) {
-                       //Handle Deny All
-                       if (denyAnyValue()) {
-                               return false;
-                       }
 
-                       //Handle Permit All with no specific values
-                       if (releaseAnyValue() && getValues().length == 0) {
-                               return true;
-                       }
+                       // Handle Deny All
+                       if (denyAnyValue()) { return false; }
+
+                       // Handle Permit All with no specific values
+                       if (releaseAnyValue() && getValues().length == 0) { return true; }
 
-                       //Handle Deny Specific
+                       // Handle Deny Specific
                        Iterator iterator = values.iterator();
                        while (iterator.hasNext()) {
                                AttributeValue valueSpec = (AttributeValue) iterator.next();
@@ -559,8 +543,7 @@ public class Rule {
                                        resourceFunction = ArpEngine.lookupMatchFunction(valueSpec.getMatchFunctionIdentifier());
                                        // For safety, err on the side of caution
                                        if (resourceFunction == null) {
-                                               log.warn(
-                                                       "Could not locate matching function for ARP value. Function: "
+                                               log.warn("Could not locate matching function for ARP value. Function: "
                                                                + valueSpec.getMatchFunctionIdentifier().toString());
                                                return false;
                                        }
@@ -571,21 +554,17 @@ public class Rule {
                                }
 
                                try {
-                                       if (valueSpec.getRelease().equals("deny") && resourceFunction.match(valueSpec.getValue(), value)) {
-                                               return false;
-                                       }
+                                       if (valueSpec.getRelease().equals("deny") && resourceFunction.match(valueSpec.getValue(), value)) { return false; }
                                } catch (MatchingException e) {
                                        log.error("Could not apply referenced matching function to ARP value: " + e);
                                        return false;
                                }
                        }
 
-                       //Handle Permit All with no relevant specific denies
-                       if (releaseAnyValue()) {
-                               return true;
-                       }
+                       // Handle Permit All with no relevant specific denies
+                       if (releaseAnyValue()) { return true; }
 
-                       //Handle Permit Specific
+                       // Handle Permit Specific
                        iterator = values.iterator();
                        while (iterator.hasNext()) {
                                AttributeValue valueSpec = (AttributeValue) iterator.next();
@@ -595,8 +574,7 @@ public class Rule {
                                        resourceFunction = ArpEngine.lookupMatchFunction(valueSpec.getMatchFunctionIdentifier());
                                        // Ignore non-functional permits
                                        if (resourceFunction == null) {
-                                               log.warn(
-                                                       "Could not locate matching function for ARP value. Function: "
+                                               log.warn("Could not locate matching function for ARP value. Function: "
                                                                + valueSpec.getMatchFunctionIdentifier().toString());
                                                continue;
                                        }
@@ -607,10 +585,7 @@ public class Rule {
                                }
 
                                try {
-                                       if (valueSpec.getRelease().equals("permit")
-                                               && resourceFunction.match(valueSpec.getValue(), value)) {
-                                               return true;
-                                       }
+                                       if (valueSpec.getRelease().equals("permit") && resourceFunction.match(valueSpec.getValue(), value)) { return true; }
                                } catch (MatchingException e) {
                                        log.error("Could not apply referenced matching function to ARP value: " + e);
                                        continue;
@@ -620,6 +595,7 @@ public class Rule {
                }
 
                void setAnyValuePermit(boolean b) {
+
                        if (b) {
                                anyValue = true;
                                anyValueRelease = "permit";
@@ -640,24 +616,25 @@ public class Rule {
                }
 
                URI getName() {
+
                        return name;
                }
+
                AttributeValue[] getValues() {
+
                        return (AttributeValue[]) values.toArray(new AttributeValue[0]);
                }
 
                void addValue(AttributeValue value) {
-                       if (denyAnyValue()) {
-                               return;
-                       }
-                       if (releaseAnyValue() && value.getRelease().equals("permit")) {
-                               return;
-                       }
+
+                       if (denyAnyValue()) { return; }
+                       if (releaseAnyValue() && value.getRelease().equals("permit")) { return; }
                        values.add(value);
                }
 
                /**
                 * Unmarshalls an <code>Attribute</code> into an xml <code>Element</code>.
+                * 
                 * @return the xml <code>Element</code>
                 */
 
@@ -683,13 +660,10 @@ public class Rule {
                                        AttributeValue value = (AttributeValue) valueIterator.next();
                                        Element valueNode = placeHolder.createElementNS(Arp.arpNamespace, "Value");
                                        valueNode.setAttributeNS(Arp.arpNamespace, "release", value.getRelease());
-                                       if (!value
-                                               .getMatchFunctionIdentifier()
-                                               .equals(new URI("urn:mace:shibboleth:arp:matchFunction:stringMatch"))) {
-                                               valueNode.setAttributeNS(
-                                                       Arp.arpNamespace,
-                                                       "matchFunction",
-                                                       value.getMatchFunctionIdentifier().toString());
+                                       if (!value.getMatchFunctionIdentifier().equals(
+                                                       new URI("urn:mace:shibboleth:arp:matchFunction:stringMatch"))) {
+                                               valueNode.setAttributeNS(Arp.arpNamespace, "matchFunction", value.getMatchFunctionIdentifier()
+                                                               .toString());
                                        }
                                        Text valueTextNode = placeHolder.createTextNode(value.getValue());
                                        valueNode.appendChild(valueTextNode);
@@ -705,19 +679,22 @@ public class Rule {
                                throw new ArpMarshallingException("Encountered a problem unmarshalling an ARP Rule.");
                        }
                }
-               
+
                /**
                 * Creates an ARP Rule Attribute from an xml representation.
-                * @param element the xml <code>Element</code> containing the ARP Rule.
+                * 
+                * @param element
+                *            the xml <code>Element</code> containing the ARP Rule.
                 */
                void marshall(Element element) throws ArpMarshallingException {
-                       //Make sure we are dealing with an Attribute
+
+                       // Make sure we are dealing with an Attribute
                        if (!element.getTagName().equals("Attribute")) {
                                log.error("Element data does not represent an ARP Rule Target.");
                                throw new ArpMarshallingException("Element data does not represent an ARP Rule target.");
                        }
 
-                       //Get the attribute identifier
+                       // Get the attribute identifier
                        try {
                                if (element.hasAttribute("identifier")) {
                                        identifier = new URI(element.getAttribute("identifier"));
@@ -727,7 +704,7 @@ public class Rule {
                                throw new ArpMarshallingException("Attribute not identified by a proper URI.");
                        }
 
-                       //Get the attribute name
+                       // Get the attribute name
                        try {
                                if (element.hasAttribute("name")) {
                                        name = new URI(element.getAttribute("name"));
@@ -740,7 +717,7 @@ public class Rule {
                                throw new ArpMarshallingException("Attribute name not identified by a proper URI.");
                        }
 
-                       //Handle <AnyValue/> definitions
+                       // Handle <AnyValue/> definitions
                        NodeList anyValueNodeList = element.getElementsByTagNameNS(Arp.arpNamespace, "AnyValue");
                        if (anyValueNodeList.getLength() == 1) {
                                anyValue = true;
@@ -749,7 +726,7 @@ public class Rule {
                                }
                        }
 
-                       //Handle Value definitions
+                       // Handle Value definitions
                        if (!denyAnyValue()) {
                                NodeList valueNodeList = element.getElementsByTagNameNS(Arp.arpNamespace, "Value");
                                for (int i = 0; valueNodeList.getLength() > i; i++) {
@@ -760,21 +737,20 @@ public class Rule {
                                                release = ((Element) valueNodeList.item(i)).getAttribute("release");
                                        }
 
-                                       //Grab the match function
+                                       // Grab the match function
                                        try {
                                                if (((Element) valueNodeList.item(i)).hasAttribute("matchFunction")) {
-                                                       matchFunctionIdentifier =
-                                                               new URI(((Element) valueNodeList.item(i)).getAttribute("matchFunction"));
+                                                       matchFunctionIdentifier = new URI(((Element) valueNodeList.item(i))
+                                                                       .getAttribute("matchFunction"));
                                                }
                                        } catch (URISyntaxException e) {
-                                               log.error(
-                                                       "ARP match function not identified by a proper URI: "
+                                               log.error("ARP match function not identified by a proper URI: "
                                                                + ((Element) valueNodeList.item(i)).getAttribute("matchFunction"));
                                                throw new ArpMarshallingException("ARP match function not identified by a proper URI.");
                                        }
 
                                        if (((Element) valueNodeList.item(i)).hasChildNodes()
-                                               && ((Element) valueNodeList.item(i)).getFirstChild().getNodeType() == Node.TEXT_NODE) {
+                                                       && ((Element) valueNodeList.item(i)).getFirstChild().getNodeType() == Node.TEXT_NODE) {
                                                value = ((CharacterData) ((Element) valueNodeList.item(i)).getFirstChild()).getData();
                                        }
                                        if (releaseAnyValue() && release.equals("permit")) {
@@ -787,6 +763,7 @@ public class Rule {
 
                }
        }
+
        class AttributeValue {
 
                private String release = "permit";
@@ -794,6 +771,7 @@ public class Rule {
                private URI matchFunctionIdentifier;
 
                AttributeValue(String release, URI matchFunctionIdentifier, String value) throws ArpMarshallingException {
+
                        setRelease(release);
                        this.value = value;
                        if (matchFunctionIdentifier != null) {
@@ -802,33 +780,37 @@ public class Rule {
                                try {
                                        matchFunctionIdentifier = new URI("urn:mace:shibboleth:arp:matchFunction:stringMatch");
                                } catch (URISyntaxException e) {
-                                       throw new ArpMarshallingException("ARP Engine internal error: could not set default matching function for attribute value.");
+                                       throw new ArpMarshallingException(
+                                                       "ARP Engine internal error: could not set default matching function for attribute value.");
                                }
                        }
                }
 
                String getRelease() {
+
                        return release;
                }
 
                String getValue() {
+
                        return value;
                }
 
                URI getMatchFunctionIdentifier() {
+
                        return matchFunctionIdentifier;
                }
 
                void setRelease(String release) {
-                       if (release == null) {
-                               return;
-                       }
+
+                       if (release == null) { return; }
                        if (release.equals("permit") || release.equals("deny")) {
                                this.release = release;
                        }
                }
 
                void setValue(String value) {
+
                        this.value = value;
                }
        }
index e7666a5..afc76ae 100755 (executable)
@@ -1,27 +1,17 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
- * All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted
- * provided that the following conditions are met: Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the
- * above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other
- * materials provided with the distribution, if any, must include the following acknowledgment: "This product includes
- * software developed by the University Corporation for Advanced Internet Development <http://www.ucaid.edu> Internet2
- * Project. Alternately, this acknowledegement may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear. Neither the name of Shibboleth nor the names of its contributors, nor Internet2,
- * nor the University Corporation for Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote
- * products derived from this software without specific prior written permission. For written permission, please
- * contact shibboleth@shibboleth.org Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor may Shibboleth appear in their name,
- * without prior written permission of the University Corporation for Advanced Internet Development. THIS SOFTWARE IS
- * PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
- * NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS
- * WITH LICENSEE. IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY CORPORATION FOR ADVANCED
- * INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp.provider;
@@ -51,8 +41,8 @@ import edu.internet2.middleware.shibboleth.aa.arp.ArpRepositoryException;
 
 public abstract class BaseArpRepository implements ArpRepository {
 
-       private static Logger   log     = Logger.getLogger(BaseArpRepository.class.getName());
-       private ArpCache                arpCache;
+       private static Logger log = Logger.getLogger(BaseArpRepository.class.getName());
+       private ArpCache arpCache;
 
        BaseArpRepository(Element config) throws ArpRepositoryException {
 
@@ -78,6 +68,7 @@ public abstract class BaseArpRepository implements ArpRepository {
         */
 
        public Arp[] getAllPolicies(Principal principal) throws ArpRepositoryException {
+
                log.debug("Received a query for all policies applicable to principal: (" + principal.getName() + ").");
                Set allPolicies = new HashSet();
                Arp sitePolicy = getSitePolicy();
@@ -112,9 +103,7 @@ public abstract class BaseArpRepository implements ArpRepository {
                        }
 
                        Element xml = retrieveSiteArpXml();
-                       if (xml == null) {
-                               return null;
-                       }
+                       if (xml == null) { return null; }
 
                        Arp siteArp = new Arp();
                        siteArp.marshall(xml);
@@ -142,6 +131,7 @@ public abstract class BaseArpRepository implements ArpRepository {
        protected abstract Element retrieveSiteArpXml() throws IOException, SAXException;
 
        public void destroy() {
+
                if (arpCache != null) {
                        arpCache.destroy();
                }
@@ -162,9 +152,7 @@ public abstract class BaseArpRepository implements ArpRepository {
 
                try {
                        Element xml = retrieveUserArpXml(principal);
-                       if (xml == null) {
-                               return null;
-                       }
+                       if (xml == null) { return null; }
 
                        Arp userArp = new Arp();
                        userArp.setPrincipal(principal);
@@ -197,16 +185,19 @@ public abstract class BaseArpRepository implements ArpRepository {
 
 class ArpCache {
 
-       private static ArpCache instance        = null;
+       private static ArpCache instance = null;
        /** Time in seconds for which ARPs should be cached. */
-       private long                    cacheLength;
-       private Map                             cache           = new HashMap();
-       private static Logger   log                     = Logger.getLogger(ArpCache.class.getName());
-       private ArpCacheCleaner cleaner         = new ArpCacheCleaner();
+       private long cacheLength;
+       private Map cache = new HashMap();
+       private static Logger log = Logger.getLogger(ArpCache.class.getName());
+       private ArpCacheCleaner cleaner = new ArpCacheCleaner();
+
+       protected ArpCache() {
 
-       protected ArpCache() {}
+       }
 
        static synchronized ArpCache instance() {
+
                if (instance == null) {
                        instance = new ArpCache();
                        return instance;
@@ -216,10 +207,12 @@ class ArpCache {
 
        /** Set time in seconds for which ARPs should be cached. */
        void setCacheLength(long cacheLength) {
+
                this.cacheLength = cacheLength;
        }
 
        void cache(Arp arp) {
+
                if (arp.isSitePolicy() == false) {
                        synchronized (cache) {
                                cache.put(arp.getPrincipal(), new CachedArp(arp, System.currentTimeMillis()));
@@ -232,10 +225,12 @@ class ArpCache {
        }
 
        Arp retrieveUserArpFromCache(Principal principal) {
+
                return retrieveArpFromCache(principal);
        }
 
        Arp retrieveSiteArpFromCache() {
+
                return retrieveArpFromCache(new SiteCachePrincipal());
        }
 
@@ -246,13 +241,9 @@ class ArpCache {
                        cachedArp = (CachedArp) cache.get(principal);
                }
 
-               if (cachedArp == null) {
-                       return null;
-               }
+               if (cachedArp == null) { return null; }
 
-               if ((System.currentTimeMillis() - cachedArp.creationTimeMillis) < (cacheLength * 1000)) {
-                       return cachedArp.arp;
-               }
+               if ((System.currentTimeMillis() - cachedArp.creationTimeMillis) < (cacheLength * 1000)) { return cachedArp.arp; }
 
                synchronized (cache) {
                        cache.remove(principal);
@@ -264,11 +255,13 @@ class ArpCache {
         * @see java.lang.Object#finalize()
         */
        protected void finalize() throws Throwable {
+
                super.finalize();
                destroy();
        }
 
        public void destroy() {
+
                synchronized (cleaner) {
                        if (cleaner != null) {
                                cleaner.shutdown = true;
@@ -279,10 +272,11 @@ class ArpCache {
 
        private class CachedArp {
 
-               Arp             arp;
-               long    creationTimeMillis;
+               Arp arp;
+               long creationTimeMillis;
 
                CachedArp(Arp arp, long creationTimeMillis) {
+
                        this.arp = arp;
                        this.creationTimeMillis = creationTimeMillis;
                }
@@ -291,6 +285,7 @@ class ArpCache {
        private class SiteCachePrincipal implements Principal {
 
                public String getName() {
+
                        return "ARP admin";
                }
 
@@ -298,9 +293,8 @@ class ArpCache {
                 * @see java.lang.Object#equals(Object)
                 */
                public boolean equals(Object object) {
-                       if (object instanceof SiteCachePrincipal) {
-                               return true;
-                       }
+
+                       if (object instanceof SiteCachePrincipal) { return true; }
                        return false;
                }
 
@@ -308,6 +302,7 @@ class ArpCache {
                 * @see java.lang.Object#hashCode()
                 */
                public int hashCode() {
+
                        return "edu.internet2.middleware.shibboleth.aa.arp.provider.BaseArpRepository.SiteCachePrincipal"
                                        .hashCode();
                }
@@ -315,10 +310,11 @@ class ArpCache {
 
        private class ArpCacheCleaner extends Thread {
 
-               private boolean shutdown        = false;
-               private Thread  master;
+               private boolean shutdown = false;
+               private Thread master;
 
                public ArpCacheCleaner() {
+
                        super("edu.internet2.middleware.shibboleth.aa.arp.provider.BaseArpRepository.ArpCache.ArpCacheCleaner");
                        master = Thread.currentThread();
                        setDaemon(true);
@@ -330,8 +326,9 @@ class ArpCache {
                }
 
                public void run() {
+
                        try {
-                               sleep(60 * 1000); //one minute
+                               sleep(60 * 1000); // one minute
                        } catch (InterruptedException e) {
                                log.debug("ArpCache Cleanup interrupted.");
                        }
@@ -356,7 +353,7 @@ class ArpCache {
                                                        }
                                                }
                                        }
-                                       //release the lock to be friendly
+                                       // release the lock to be friendly
                                        Iterator deleteIterator = needsDeleting.iterator();
                                        while (deleteIterator.hasNext()) {
                                                synchronized (cache) {
@@ -371,7 +368,7 @@ class ArpCache {
                                                }
                                        }
 
-                                       sleep(60 * 1000); //one minute
+                                       sleep(60 * 1000); // one minute
                                } catch (InterruptedException e) {
                                        log.debug("ArpCache Cleanup interrupted.");
                                }
index c1a2a61..3c8b7d9 100755 (executable)
@@ -1,48 +1,17 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation
- * for Advanced Internet Development, Inc. All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu> Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp.provider;
@@ -66,8 +35,7 @@ import edu.internet2.middleware.shibboleth.idp.IdPConfig;
 import edu.internet2.middleware.shibboleth.xml.Parser;
 
 /**
- * Simple <code>ArpRepository</code> implementation that uses a filesystem
- * for storage.
+ * Simple <code>ArpRepository</code> implementation that uses a filesystem for storage.
  * 
  * @author Walter Hoehn (wassa@columbia.edu)
  */
@@ -80,13 +48,14 @@ public class FileSystemArpRepository extends BaseArpRepository implements ArpRep
        private String dataStorePath;
 
        public FileSystemArpRepository(Element config) throws ArpRepositoryException {
+
                super(config);
 
                NodeList itemElements = config.getElementsByTagNameNS(IdPConfig.configNameSpace, "Path");
 
                if (itemElements.getLength() > 1) {
-                       log.warn(
-                               "Encountered multiple <Path> configuration elements for the File System ARP Repository.  Using first...");
+                       log
+                                       .warn("Encountered multiple <Path> configuration elements for the File System ARP Repository.  Using first...");
                }
                Node tnode = itemElements.item(0).getFirstChild();
                String path = null;
@@ -95,17 +64,16 @@ public class FileSystemArpRepository extends BaseArpRepository implements ArpRep
                }
                if (path == null || path.equals("")) {
                        log.error("ARP repository path not specified.");
-                       throw new ArpRepositoryException("Cannot initialize FileSystemArpRepository: <ArpRepository> element must contain a <Path> element.");
+                       throw new ArpRepositoryException(
+                                       "Cannot initialize FileSystemArpRepository: <ArpRepository> element must contain a <Path> element.");
                }
 
                try {
                        File realPath = new ShibResource(path, this.getClass()).getFile();
 
                        if (!realPath.isDirectory()) {
-                               log.error(
-                                       "Cannot initialize FileSystemArpRepository: specified path is not a directory: ("
-                                               + realPath.getPath()
-                                               + ").");
+                               log.error("Cannot initialize FileSystemArpRepository: specified path is not a directory: ("
+                                               + realPath.getPath() + ").");
                                throw new ArpRepositoryException("Cannot initialize FileSystemArpRepository");
                        }
 
@@ -119,10 +87,12 @@ public class FileSystemArpRepository extends BaseArpRepository implements ArpRep
                        throw new ArpRepositoryException("Cannot initialize FileSystemArpRepository");
                }
        }
+
        /**
         * @see edu.internet2.middleware.shibboleth.aa.arp.ArpRepository#remove(Arp)
         */
        public void remove(Arp arp) throws ArpRepositoryException {
+
                throw new ArpRepositoryException("Remove not implemented for FileSystemArpRepository.");
        }
 
@@ -130,6 +100,7 @@ public class FileSystemArpRepository extends BaseArpRepository implements ArpRep
         * @see edu.internet2.middleware.shibboleth.aa.arp.ArpRepository#update(Arp)
         */
        public void update(Arp arp) throws ArpRepositoryException {
+
                throw new ArpRepositoryException("Update not implemented for FileSystemArpRepository.");
        }
 
@@ -166,10 +137,12 @@ public class FileSystemArpRepository extends BaseArpRepository implements ArpRep
                        return null;
                }
        }
+
        /**
         * @see edu.internet2.middleware.shibboleth.aa.arp.provider.BaseArpRepository#retrieveUserArpXml(Principal)
         */
        protected Element retrieveUserArpXml(Principal principal) throws IOException, SAXException {
+
                String fileName = dataStorePath + "arp.user." + principal.getName() + ".xml";
                log.debug("Attempting to load user (" + principal.getName() + ") ARP from: (" + fileName + ").");
                return retrieveArpXml(fileName);
index 5830a04..a7b1c13 100755 (executable)
@@ -1,50 +1,17 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp.provider;
@@ -64,7 +31,7 @@ import edu.internet2.middleware.shibboleth.aa.arp.ArpRepository;
 import edu.internet2.middleware.shibboleth.aa.arp.ArpRepositoryException;
 
 /**
- * A memory-based <code>ArpRepository</code> implementation.  Only useful for testing.
+ * A memory-based <code>ArpRepository</code> implementation. Only useful for testing.
  * 
  * @author Walter Hoehn (wassa@columbia.edu)
  */
@@ -76,6 +43,7 @@ public class MemoryArpRepository implements ArpRepository {
        private static Logger log = Logger.getLogger(MemoryArpRepository.class.getName());
 
        public MemoryArpRepository(Element config) {
+
        }
 
        /**
@@ -83,18 +51,17 @@ public class MemoryArpRepository implements ArpRepository {
         */
 
        public synchronized Arp getSitePolicy() throws ArpRepositoryException {
+
                return sitePolicy;
        }
-       
+
        /**
         * @see edu.internet2.middleware.shibboleth.aa.arp.ArpRepository#getAllPolicies(Principal)
         */
 
        public Arp[] getAllPolicies(Principal principal) throws ArpRepositoryException {
-               log.debug(
-                       "Received a query for all policies applicable to principal: ("
-                               + principal.getName()
-                               + ").");
+
+               log.debug("Received a query for all policies applicable to principal: (" + principal.getName() + ").");
                Set allPolicies = new HashSet();
                if (getSitePolicy() != null) {
                        log.debug("Returning site policy.");
@@ -115,6 +82,7 @@ public class MemoryArpRepository implements ArpRepository {
         */
 
        public Arp getUserPolicy(Principal principal) throws ArpRepositoryException {
+
                return (Arp) userPolicies.get(principal);
        }
 
@@ -139,9 +107,7 @@ public class MemoryArpRepository implements ArpRepository {
 
        public void update(Arp arp) throws ArpRepositoryException {
 
-               if (arp == null) {
-                       throw new ArpRepositoryException("Cannot add a null ARP to the repository.");
-               }
+               if (arp == null) { throw new ArpRepositoryException("Cannot add a null ARP to the repository."); }
 
                if (arp.isSitePolicy()) {
                        synchronized (this) {
@@ -150,15 +116,15 @@ public class MemoryArpRepository implements ArpRepository {
                        return;
                }
 
-               if (arp.getPrincipal() == null) {
-                       throw new ArpRepositoryException("Cannot add ARP to repository.  Must contain a Principal or be a Site ARP.");
-               }
+               if (arp.getPrincipal() == null) { throw new ArpRepositoryException(
+                               "Cannot add ARP to repository.  Must contain a Principal or be a Site ARP."); }
 
                userPolicies.put(arp.getPrincipal(), arp);
        }
-       
+
        public void destroy() {
-               //do nothing
+
+       // do nothing
        }
 
 }
index b586a6c..9701bb0 100755 (executable)
@@ -1,50 +1,17 @@
 /*
- * The Shibboleth License, Version 1.
- * Copyright (c) 2002
- * University Corporation for Advanced Internet Development, Inc.
- * All rights reserved
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
  *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- *
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- *
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp.provider;
@@ -57,29 +24,26 @@ import edu.internet2.middleware.shibboleth.aa.arp.MatchingException;
 import org.apache.log4j.Logger;
 
 /**
- * Match function implementaiton that does regular expression matching on both requesters
- * and resources.
- *
+ * Match function implementaiton that does regular expression matching on both requesters and resources.
+ * 
  * @author Walter Hoehn (wassa&#064;columbia.edu)
  */
 public class RegexMatchFunction implements MatchFunction {
+
        private static Logger log = Logger.getLogger(RegexMatchFunction.class.getName());
 
        /**
-        * @see edu.internet2.middleware.shibboleth.aa.arp.MatchFunction#match(Object,
-        *              Object)
+        * @see edu.internet2.middleware.shibboleth.aa.arp.MatchFunction#match(Object, Object)
         */
-       public boolean match(Object arpComponent, Object requestComponent)
-               throws MatchingException
-       {
-               if (!(arpComponent instanceof String) || !(requestComponent instanceof String || requestComponent instanceof URL)) {
+       public boolean match(Object arpComponent, Object requestComponent) throws MatchingException {
+
+               if (!(arpComponent instanceof String)
+                               || !(requestComponent instanceof String || requestComponent instanceof URL)) {
                        log.error("Invalid use of ARP matching function (RegexMatchFunction).");
-                       throw new MatchingException(
-                               "Invalid use of ARP matching function (RegexMatchFunction).");
-               }
-               if (requestComponent instanceof URL) {
-                       return ((URL) requestComponent).toString().matches((String) arpComponent);
+                       throw new MatchingException("Invalid use of ARP matching function (RegexMatchFunction).");
                }
+               if (requestComponent instanceof URL) { return ((URL) requestComponent).toString()
+                               .matches((String) arpComponent); }
                return ((String) requestComponent).matches((String) arpComponent);
        }
 }
index ef15320..18df9a5 100644 (file)
@@ -1,50 +1,17 @@
 /*
- * The Shibboleth License, Version 1.
- * Copyright (c) 2002
- * University Corporation for Advanced Internet Development, Inc.
- * All rights reserved
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
  *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- *
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- *
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp.provider;
@@ -58,27 +25,25 @@ import org.apache.log4j.Logger;
 
 /**
  * Match function implementaiton that matches when a given regular expression does NOT match.
- *
+ * 
  * @author Walter Hoehn (wassa&#064;columbia.edu)
  */
 public class RegexNotMatchFunction implements MatchFunction {
+
        private static Logger log = Logger.getLogger(RegexNotMatchFunction.class.getName());
 
        /**
-        * @see edu.internet2.middleware.shibboleth.aa.arp.MatchFunction#match(Object,
-        *              Object)
+        * @see edu.internet2.middleware.shibboleth.aa.arp.MatchFunction#match(Object, Object)
         */
-       public boolean match(Object arpComponent, Object requestComponent)
-               throws MatchingException
-       {
-               if (!(arpComponent instanceof String) || !(requestComponent instanceof String || requestComponent instanceof URL)) {
+       public boolean match(Object arpComponent, Object requestComponent) throws MatchingException {
+
+               if (!(arpComponent instanceof String)
+                               || !(requestComponent instanceof String || requestComponent instanceof URL)) {
                        log.error("Invalid use of ARP matching function (RegexMatchFunction).");
-                       throw new MatchingException(
-                               "Invalid use of ARP matching function (RegexMatchFunction).");
-               }
-               if (requestComponent instanceof URL) {
-                       return ((URL) requestComponent).toString().matches((String) arpComponent);
+                       throw new MatchingException("Invalid use of ARP matching function (RegexMatchFunction).");
                }
+               if (requestComponent instanceof URL) { return ((URL) requestComponent).toString()
+                               .matches((String) arpComponent); }
                return !((String) requestComponent).matches((String) arpComponent);
        }
 }
index ece33c1..861e36a 100755 (executable)
@@ -1,50 +1,17 @@
 /*
- * The Shibboleth License, Version 1.
- * Copyright (c) 2002
- * University Corporation for Advanced Internet Development, Inc.
- * All rights reserved
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
  *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- *
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- *
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp.provider;
@@ -59,23 +26,21 @@ import java.net.URL;
 
 /**
  * MatchFuction implementation that does "tail" matching on resources.
- *
+ * 
  * @author Walter Hoehn (wassa&#064;columbia.edu)
  */
 public class ResourceTreeMatchFunction implements MatchFunction {
+
        private static Logger log = Logger.getLogger(ResourceTreeMatchFunction.class.getName());
 
        /**
-        * @see edu.internet2.middleware.shibboleth.aa.arp.MatchFunction#match(Object,
-        *              Object)
+        * @see edu.internet2.middleware.shibboleth.aa.arp.MatchFunction#match(Object, Object)
         */
-       public boolean match(Object arpComponent, Object requestComponent)
-               throws MatchingException
-       {
+       public boolean match(Object arpComponent, Object requestComponent) throws MatchingException {
+
                if (!(arpComponent instanceof String) || !(requestComponent instanceof URL)) {
                        log.error("Invalid use of ARP matching function (ResourceTreeMatchFunction).");
-                       throw new MatchingException(
-                               "Invalid use of ARP matching function (ResourceTreeMatchFunction).");
+                       throw new MatchingException("Invalid use of ARP matching function (ResourceTreeMatchFunction).");
                }
 
                URL arpURL = null;
@@ -83,40 +48,30 @@ public class ResourceTreeMatchFunction implements MatchFunction {
                try {
                        arpURL = new URL((String) arpComponent);
                } catch (MalformedURLException e) {
-                       log.error(
-                               "Invalid use of ARP matching function (ResourceTreeMatchFunction): ARP Component is not a URL.");
-                       throw new MatchingException(
-                               "Invalid use of ARP matching function (ResourceTreeMatchFunction).");
+                       log.error("Invalid use of ARP matching function (ResourceTreeMatchFunction): ARP Component is not a URL.");
+                       throw new MatchingException("Invalid use of ARP matching function (ResourceTreeMatchFunction).");
                }
 
-               if (!matchProtocol(arpURL, (URL) requestComponent)) {
-                       return false;
-               }
+               if (!matchProtocol(arpURL, (URL) requestComponent)) { return false; }
 
-               if (!matchHost(arpURL, (URL) requestComponent)) {
-                       return false;
-               }
+               if (!matchHost(arpURL, (URL) requestComponent)) { return false; }
 
-               if (!matchPort(arpURL, (URL) requestComponent)) {
-                       return false;
-               }
+               if (!matchPort(arpURL, (URL) requestComponent)) { return false; }
 
-               if (!matchPath(arpURL, (URL) requestComponent)) {
-                       return false;
-               }
+               if (!matchPath(arpURL, (URL) requestComponent)) { return false; }
 
-               if (!matchQuery(arpURL, (URL) requestComponent)) {
-                       return false;
-               }
+               if (!matchQuery(arpURL, (URL) requestComponent)) { return false; }
 
                return true;
        }
 
        protected boolean matchHost(URL arpURL, URL requestURL) {
+
                return arpURL.getHost().equals(requestURL.getHost());
        }
 
        protected boolean matchPath(URL arpURL, URL requestURL) {
+
                String arpPath = arpURL.getPath();
 
                if (arpPath.equals("")) {
@@ -133,6 +88,7 @@ public class ResourceTreeMatchFunction implements MatchFunction {
        }
 
        protected boolean matchPort(URL arpURL, URL requestURL) {
+
                int arpPort = arpURL.getPort();
 
                if (arpPort < 1) {
@@ -145,21 +101,19 @@ public class ResourceTreeMatchFunction implements MatchFunction {
                        requestPort = requestURL.getDefaultPort();
                }
 
-               if (arpPort == requestPort) {
-                       return true;
-               }
+               if (arpPort == requestPort) { return true; }
 
                return false;
        }
 
        protected boolean matchProtocol(URL arpURL, URL requestURL) {
+
                return arpURL.getProtocol().equals(requestURL.getProtocol());
        }
 
        protected boolean matchQuery(URL arpURL, URL requestURL) {
-               if (arpURL.getQuery() == null) {
-                       return true;
-               }
+
+               if (arpURL.getQuery() == null) { return true; }
 
                return arpURL.getQuery().equals(requestURL.getQuery());
        }
index f34e2f4..8c92333 100644 (file)
@@ -1,50 +1,17 @@
 /*
- * The Shibboleth License, Version 1.
- * Copyright (c) 2002
- * University Corporation for Advanced Internet Development, Inc.
- * All rights reserved
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
  *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- *
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- *
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp.provider;
@@ -56,18 +23,18 @@ import edu.internet2.middleware.shibboleth.aa.arp.MatchingException;
 
 /**
  * Match function that does exact string matching.
- *
+ * 
  * @author Walter Hoehn (wassa&#064;columbia.edu)
  */
 public class StringValueMatchFunction implements MatchFunction {
+
        private static Logger log = Logger.getLogger(StringValueMatchFunction.class.getName());
+
        /**
-        * @see edu.internet2.middleware.shibboleth.aa.arp.MatchFunction#match(Object,
-        *              Object)
+        * @see edu.internet2.middleware.shibboleth.aa.arp.MatchFunction#match(Object, Object)
         */
-       public boolean match(Object arpComponent, Object requestComponent)
-               throws MatchingException
-       {
+       public boolean match(Object arpComponent, Object requestComponent) throws MatchingException {
+
                if (!(arpComponent instanceof String) || !(requestComponent instanceof String)) {
                        log.error("Invalid use of ARP matching function (StringValueMatchFunction).");
                        throw new MatchingException("Invalid use of ARP matching function (StringValueMatchFunction).");
index 6befe35..ac707a0 100644 (file)
@@ -1,50 +1,17 @@
 /*
- * The Shibboleth License, Version 1.
- * Copyright (c) 2002
- * University Corporation for Advanced Internet Development, Inc.
- * All rights reserved
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
  *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- *
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- *
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.arp.provider;
@@ -56,18 +23,18 @@ import edu.internet2.middleware.shibboleth.aa.arp.MatchingException;
 
 /**
  * Match function that matches strings that are not the same.
- *
+ * 
  * @author Walter Hoehn (wassa&#064;columbia.edu)
  */
 public class StringValueNotMatchFunction implements MatchFunction {
+
        private static Logger log = Logger.getLogger(StringValueNotMatchFunction.class.getName());
+
        /**
-        * @see edu.internet2.middleware.shibboleth.aa.arp.MatchFunction#match(Object,
-        *              Object)
+        * @see edu.internet2.middleware.shibboleth.aa.arp.MatchFunction#match(Object, Object)
         */
-       public boolean match(Object arpComponent, Object requestComponent)
-               throws MatchingException
-       {
+       public boolean match(Object arpComponent, Object requestComponent) throws MatchingException {
+
                if (!(arpComponent instanceof String) || !(requestComponent instanceof String)) {
                        log.error("Invalid use of ARP matching function (StringValueNotMatchFunction).");
                        throw new MatchingException("Invalid use of ARP matching function (StringValueNotMatchFunction).");
index ceebef2..f1e0b70 100644 (file)
@@ -1,26 +1,17 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
- * All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted
- * provided that the following conditions are met: Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution, if any, must include the following acknowledgment: "This product includes software
- * developed by the University Corporation for Advanced Internet Development <http://www.ucaid.edu>Internet2 Project.
- * Alternately, this acknowledegement may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear. Neither the name of Shibboleth nor the names of its contributors, nor Internet2, nor
- * the University Corporation for Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote
- * products derived from this software without specific prior written permission. For written permission, please contact
- * shibboleth@shibboleth.org Products derived from this software may not be called Shibboleth, Internet2, UCAID, or the
- * University Corporation for Advanced Internet Development, nor may Shibboleth appear in their name, without prior
- * written permission of the University Corporation for Advanced Internet Development. THIS SOFTWARE IS PROVIDED BY THE
- * COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE
- * DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. IN NO
- * EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC.
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.attrresolv;
index 9f769e7..f6567d5 100644 (file)
@@ -1,26 +1,17 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
- * All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted
- * provided that the following conditions are met: Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution, if any, must include the following acknowledgment: "This product includes software
- * developed by the University Corporation for Advanced Internet Development <http://www.ucaid.edu> Internet2 Project.
- * Alternately, this acknowledegement may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear. Neither the name of Shibboleth nor the names of its contributors, nor Internet2, nor
- * the University Corporation for Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote
- * products derived from this software without specific prior written permission. For written permission, please contact
- * shibboleth@shibboleth.org Products derived from this software may not be called Shibboleth, Internet2, UCAID, or the
- * University Corporation for Advanced Internet Development, nor may Shibboleth appear in their name, without prior
- * written permission of the University Corporation for Advanced Internet Development. THIS SOFTWARE IS PROVIDED BY THE
- * COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE
- * DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. IN NO
- * EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC.
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.attrresolv;
@@ -568,9 +559,9 @@ public class AttributeResolver {
                public void setLifetime(long lifetime) {
 
                }
-               
+
                public void setNamespace(String namespace) {
-                       
+
                }
 
                public long getLifetime() {
index 6bd100a..095b5a2 100644 (file)
@@ -1,65 +1,32 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package edu.internet2.middleware.shibboleth.aa.attrresolv;
 
 /**
- * Signals that an error occurred while the <code>AttributeResolver</code> was attempting
- * to resolve the specified attributes.
+ * Signals that an error occurred while the <code>AttributeResolver</code> was attempting to resolve the specified
+ * attributes.
  * 
  * @author Walter Hoehn (wassa@columbia.edu)
  */
 public class AttributeResolverException extends Exception {
-       
+
        public AttributeResolverException(String message) {
+
                super(message);
        }
 
 }
-
index 5244e96..57c0e0b 100644 (file)
@@ -1,26 +1,17 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
- * All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted
- * provided that the following conditions are met: Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution, if any, must include the following acknowledgment: "This product includes software
- * developed by the University Corporation for Advanced Internet Development <http://www.ucaid.edu>Internet2 Project.
- * Alternately, this acknowledegement may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear. Neither the name of Shibboleth nor the names of its contributors, nor Internet2, nor
- * the University Corporation for Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote
- * products derived from this software without specific prior written permission. For written permission, please contact
- * shibboleth@shibboleth.org Products derived from this software may not be called Shibboleth, Internet2, UCAID, or the
- * University Corporation for Advanced Internet Development, nor may Shibboleth appear in their name, without prior
- * written permission of the University Corporation for Advanced Internet Development. THIS SOFTWARE IS PROVIDED BY THE
- * COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE
- * DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. IN NO
- * EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC.
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.attrresolv;
index 0dc0435..167b482 100644 (file)
@@ -1,52 +1,19 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package edu.internet2.middleware.shibboleth.aa.attrresolv;
 
 import java.util.HashMap;
@@ -55,8 +22,8 @@ import java.util.Map;
 import javax.naming.directory.Attributes;
 
 /**
- * Contains resolved <code>ResolutionPlugIn</code> objects that a particular Attribute Definition PlugIn
- * relies upon for its resolution.
+ * Contains resolved <code>ResolutionPlugIn</code> objects that a particular Attribute Definition PlugIn relies upon
+ * for its resolution.
  * 
  * @author Walter Hoehn (wassa@columbia.edu)
  */
@@ -66,6 +33,7 @@ public class Dependencies {
        protected Map resolvedConnectorDependencies = new HashMap();
 
        public Attributes getConnectorResolution(String id) {
+
                if (resolvedConnectorDependencies.containsKey(id)) {
                        return (Attributes) resolvedConnectorDependencies.get(id);
                } else {
@@ -74,17 +42,21 @@ public class Dependencies {
        }
 
        void addConnectorResolution(String id, Attributes attrs) {
+
                resolvedConnectorDependencies.put(id, attrs);
        }
 
        public ResolverAttribute getAttributeResolution(String id) {
+
                if (resolvedAttributeDependencies.containsKey(id)) {
                        return (ResolverAttribute) resolvedAttributeDependencies.get(id);
                } else {
                        return null;
                }
        }
+
        void addAttributeResolution(String id, ResolverAttribute attr) {
+
                resolvedAttributeDependencies.put(id, attr);
        }
 }
index e91c7bf..8c04216 100644 (file)
@@ -1,99 +1,62 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package edu.internet2.middleware.shibboleth.aa.attrresolv;
 
 /**
- * Defines a plugin for the AA Attribute Resolver.  Such plugins can
- * be realized at runtime by the resolver.
+ * Defines a plugin for the AA Attribute Resolver. Such plugins can be realized at runtime by the resolver.
  * 
  * @author Walter Hoehn
- *
+ * 
  */
 public interface ResolutionPlugIn {
-       
-    /**
-     * Returns the name of the plugin.
-     * 
-     * @return String a plugin name
-     */
-    public String getId();
-       
-    /**
-     * Returns the time in seconds to cache the results of the plugin's resolution.
-     * 
-     * @return long time in seconds 
-     */
-    public long getTTL();
-    
-    /**
-     * Returns whether to trap and log resolution errors and return nothing,
-     * or propagate errors up as exceptions. 
-     * 
-     * @return boolean whether to propagate errors 
-     */
-    public boolean getPropagateErrors();
 
-    /**
-     * Returns an array containing the names of the attribute
-     * definitions that this definition depends upon for resolution. 
-     * 
-     * @return String[] an array of Ids
-     */
-    public String[] getAttributeDefinitionDependencyIds();
-    
-    /**
-     * Returns an array containining the names of the connectors
-     * that this definition depends upon for resolution. 
-     * 
-     * @return String[] an array of Ids
-     */
-    public String[] getDataConnectorDependencyIds();
-}
+       /**
+        * Returns the name of the plugin.
+        * 
+        * @return String a plugin name
+        */
+       public String getId();
 
+       /**
+        * Returns the time in seconds to cache the results of the plugin's resolution.
+        * 
+        * @return long time in seconds
+        */
+       public long getTTL();
+
+       /**
+        * Returns whether to trap and log resolution errors and return nothing, or propagate errors up as exceptions.
+        * 
+        * @return boolean whether to propagate errors
+        */
+       public boolean getPropagateErrors();
+
+       /**
+        * Returns an array containing the names of the attribute definitions that this definition depends upon for
+        * resolution.
+        * 
+        * @return String[] an array of Ids
+        */
+       public String[] getAttributeDefinitionDependencyIds();
+
+       /**
+        * Returns an array containining the names of the connectors that this definition depends upon for resolution.
+        * 
+        * @return String[] an array of Ids
+        */
+       public String[] getDataConnectorDependencyIds();
+}
index 6f790de..5b4be37 100644 (file)
@@ -1,52 +1,19 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package edu.internet2.middleware.shibboleth.aa.attrresolv;
 
 /**
@@ -57,8 +24,8 @@ package edu.internet2.middleware.shibboleth.aa.attrresolv;
 public class ResolutionPlugInException extends AttributeResolverException {
 
        public ResolutionPlugInException(String message) {
+
                super(message);
        }
 
-
 }
index 31233cc..382c47f 100644 (file)
@@ -1,26 +1,17 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
- * All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted
- * provided that the following conditions are met: Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution, if any, must include the following acknowledgment: "This product includes software
- * developed by the University Corporation for Advanced Internet Development <http://www.ucaid.edu>Internet2 Project.
- * Alternately, this acknowledegement may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear. Neither the name of Shibboleth nor the names of its contributors, nor Internet2, nor
- * the University Corporation for Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote
- * products derived from this software without specific prior written permission. For written permission, please contact
- * shibboleth@shibboleth.org Products derived from this software may not be called Shibboleth, Internet2, UCAID, or the
- * University Corporation for Advanced Internet Development, nor may Shibboleth appear in their name, without prior
- * written permission of the University Corporation for Advanced Internet Development. THIS SOFTWARE IS PROVIDED BY THE
- * COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE
- * DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. IN NO
- * EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC.
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.attrresolv;
@@ -57,7 +48,7 @@ public class ResolutionPlugInFactory {
                if (e.getTagName().equals("CustomAttributeDefinition")) { return new CustomAttributeDefinition(e); }
 
                if (e.getTagName().equals("SimpleAttributeDefinition")) { return new SimpleAttributeDefinition(e); }
-               
+
                if (e.getTagName().equals("SAML2PersistentID")) { return new SAML2PersistentID(e); }
 
                if (e.getTagName().equals("PersistentIDAttributeDefinition")) { return new PersistentIDAttributeDefinition(e); }
index b8902d5..ec70f27 100644 (file)
@@ -1,26 +1,17 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
- * All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted
- * provided that the following conditions are met: Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution, if any, must include the following acknowledgment: "This product includes software
- * developed by the University Corporation for Advanced Internet Development <http://www.ucaid.edu>Internet2 Project.
- * Alternately, this acknowledegement may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear. Neither the name of Shibboleth nor the names of its contributors, nor Internet2, nor
- * the University Corporation for Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote
- * products derived from this software without specific prior written permission. For written permission, please contact
- * shibboleth@shibboleth.org Products derived from this software may not be called Shibboleth, Internet2, UCAID, or the
- * University Corporation for Advanced Internet Development, nor may Shibboleth appear in their name, without prior
- * written permission of the University Corporation for Advanced Internet Development. THIS SOFTWARE IS PROVIDED BY THE
- * COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE
- * DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. IN NO
- * EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC.
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.attrresolv;
index 234655e..8cf3bc6 100644 (file)
@@ -1,53 +1,21 @@
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.attrresolv;
+
 /**
  * Defines a set of attributes that can be resolved by the <code>AttributeResolver</code>.
  * 
@@ -56,11 +24,15 @@ package edu.internet2.middleware.shibboleth.aa.attrresolv;
 public interface ResolverAttributeSet {
 
        public ResolverAttributeIterator resolverAttributeIterator();
+
        public ResolverAttribute getByName(String name);
-       
+
        public interface ResolverAttributeIterator {
+
                public boolean hasNext();
+
                public ResolverAttribute nextResolverAttribute();
+
                public void remove();
        }
 }
index 00b80e3..39f83b5 100644 (file)
@@ -1,38 +1,17 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
- * following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following
- * disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the distribution, if any, must include the
- * following acknowledgment: "This product includes software developed by the University Corporation for Advanced
- * Internet Development <http://www.ucaid.edu> Internet2 Project. Alternately, this acknowledegement may appear in the
- * software itself, if and wherever such third-party acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor Internet2, nor the University Corporation for
- * Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote products derived from this software
- * without specific prior written permission. For written permission, please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, UCAID, or the University Corporation
- * for Advanced Internet Development, nor may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE,
- * ACCURACY, AND EFFORT IS WITH LICENSEE. IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package edu.internet2.middleware.shibboleth.aa.attrresolv;
@@ -51,17 +30,18 @@ import org.apache.log4j.Logger;
  * Rudimentary mechanism for caching objects created by the various Resolution PlugIns.
  * 
  * @author Walter Hoehn (wassa@columbia.edu)
- *  
+ * 
  */
 public class ResolverCache {
 
        private static Logger log = Logger.getLogger(ResolverCache.class.getName());
-       //Hashtable handles synchronization for us
+       // Hashtable handles synchronization for us
        private Hashtable attributeDataCache = new Hashtable();
        private Hashtable connectorDataCache = new Hashtable();
        private Cleaner cleaner = new Cleaner();
 
        ResolverCache() {
+
                log.info("Initializing the Attribute Resolver cache.");
        }
 
@@ -69,9 +49,9 @@ public class ResolverCache {
 
                if (principal != null && cacheLength > 0 && plugInId != null && !plugInId.equals("") && toCache != null) {
                        log.debug("Adding resolved Connector data to Attribute Resolver cache.");
-                       connectorDataCache.put(
-                               new CacheKey(principal, plugInId),
-                               new CacheObject(toCache, System.currentTimeMillis() + (cacheLength * 1000)));
+                       connectorDataCache.put(new CacheKey(principal, plugInId), new CacheObject(toCache, System
+                                       .currentTimeMillis()
+                                       + (cacheLength * 1000)));
 
                } else {
                        log.error("Attempted to add bad data to Attribute Resolver cache.");
@@ -82,9 +62,9 @@ public class ResolverCache {
 
                if (principal != null && cacheLength > 0 && plugInId != null && !plugInId.equals("") && toCache != null) {
                        log.debug("Adding resolved Attribute data to Attribute Resolver cache.");
-                       attributeDataCache.put(
-                               new CacheKey(principal, plugInId),
-                               new CacheObject(toCache, System.currentTimeMillis() + (cacheLength * 1000)));
+                       attributeDataCache.put(new CacheKey(principal, plugInId), new CacheObject(toCache, System
+                                       .currentTimeMillis()
+                                       + (cacheLength * 1000)));
 
                } else {
                        log.error("Attempted to add bad data to Attribute Resolver cache.");
@@ -132,6 +112,7 @@ public class ResolverCache {
        }
 
        private void deleteAttributeResolution(CacheKey cacheKey) {
+
                synchronized (attributeDataCache) {
                        Object object = attributeDataCache.get(cacheKey);
                        if (object != null) {
@@ -145,6 +126,7 @@ public class ResolverCache {
        }
 
        private void deleteConnectorResolution(CacheKey cacheKey) {
+
                synchronized (connectorDataCache) {
                        Object object = connectorDataCache.get(cacheKey);
                        if (object != null) {
@@ -161,6 +143,7 @@ public class ResolverCache {
         * @see java.lang.Object#finalize()
         */
        protected void finalize() throws Throwable {
+
                super.finalize();
                destroy();
        }
@@ -169,6 +152,7 @@ public class ResolverCache {
         * Cleanup resources that won't be released when this object is garbage-collected
         */
        protected void destroy() {
+
                synchronized (cleaner) {
                        if (cleaner != null) {
                                cleaner.shutdown = true;
@@ -183,15 +167,18 @@ public class ResolverCache {
                long expiration;
 
                private CacheObject(Object object, long expiration) {
+
                        this.object = object;
                        this.expiration = expiration;
                }
 
                private Object getCached() {
+
                        return object;
                }
 
                private boolean isExpired() {
+
                        if (System.currentTimeMillis() > expiration) {
                                return true;
                        } else {
@@ -206,25 +193,21 @@ public class ResolverCache {
                private String plugInId;
 
                private CacheKey(Principal principal, String plugInId) {
-                       if (principal == null || plugInId == null) {
-                               throw new IllegalArgumentException("Cannot use null value in as cache key.");
-                       }
+
+                       if (principal == null || plugInId == null) { throw new IllegalArgumentException(
+                                       "Cannot use null value in as cache key."); }
                        this.principal = principal;
                        this.plugInId = plugInId;
                }
+
                /**
                 * @see java.lang.Object#equals(Object)
                 */
                public boolean equals(Object object) {
-                       if (object == null || !(object instanceof CacheKey)) {
-                               return false;
-                       }
-                       if (!plugInId.equals(((CacheKey) object).getPlugInId())) {
-                               return false;
-                       }
-                       if (!principal.equals(((CacheKey) object).getPrincipal())) {
-                               return false;
-                       }
+
+                       if (object == null || !(object instanceof CacheKey)) { return false; }
+                       if (!plugInId.equals(((CacheKey) object).getPlugInId())) { return false; }
+                       if (!principal.equals(((CacheKey) object).getPrincipal())) { return false; }
                        return true;
                }
 
@@ -234,6 +217,7 @@ public class ResolverCache {
                 * @return Object
                 */
                private String getPlugInId() {
+
                        return plugInId;
                }
 
@@ -243,6 +227,7 @@ public class ResolverCache {
                 * @return Object
                 */
                private Principal getPrincipal() {
+
                        return principal;
                }
 
@@ -250,6 +235,7 @@ public class ResolverCache {
                 * @see java.lang.Object#hashCode()
                 */
                public int hashCode() {
+
                        return (principal.hashCode() + ":" + plugInId.hashCode()).hashCode();
                }
 
@@ -261,6 +247,7 @@ public class ResolverCache {
                private Object master;
 
                public Cleaner() {
+
                        super("edu.internet2.middleware.shibboleth.aa.attrresolv.ResolverCacher.Cleaner");
                        master = Thread.currentThread();
                        setDaemon(true);
@@ -272,8 +259,9 @@ public class ResolverCache {
                }
 
                public void run() {
+
                        try {
-                               sleep(60 * 1000); //one minute
+                               sleep(60 * 1000); // one minute
                        } catch (InterruptedException e) {
                                log.debug("Resolver Cache Cleanup interrupted.");
                        }
@@ -290,7 +278,7 @@ public class ResolverCache {
                                        }
 
                                        log.debug("Resolver Cache cleanup thread searching cache for stale entries.");
-                                       Hashtable[] caches = { attributeDataCache, connectorDataCache };
+                                       Hashtable[] caches = {attributeDataCache, connectorDataCache};
 
                                        for (int i = 0; i < caches.length; i++) {
                                                Set stale = new HashSet();
@@ -323,7 +311,7 @@ public class ResolverCache {
                                                }