Updated javadocs.
authornlevitt <nlevitt@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Thu, 5 Feb 2004 22:54:24 +0000 (22:54 +0000)
committernlevitt <nlevitt@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Thu, 5 Feb 2004 22:54:24 +0000 (22:54 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/trunk@887 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

13 files changed:
src/edu/internet2/middleware/shibboleth/aa/AAServiceProviderMapper.java
src/edu/internet2/middleware/shibboleth/common/BaseNameIdentifierMapping.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/NameMapper.java
src/edu/internet2/middleware/shibboleth/common/PrincipalNameIdentifier.java
src/edu/internet2/middleware/shibboleth/common/ServiceProviderMapper.java
src/edu/internet2/middleware/shibboleth/hs/HSNameIdentifierMapping.java
src/edu/internet2/middleware/shibboleth/hs/HSServiceProviderMapper.java
src/edu/internet2/middleware/shibboleth/hs/provider/AQHNameIdentifierMapping.java
src/edu/internet2/middleware/shibboleth/hs/provider/CryptoShibHandle.java
src/edu/internet2/middleware/shibboleth/hs/provider/SharedMemoryShibHandle.java

index 3171fbe..481c29b 100644 (file)
@@ -56,6 +56,9 @@ import edu.internet2.middleware.shibboleth.common.ServiceProviderMapperException
 import edu.internet2.middleware.shibboleth.common.ShibbolethOriginConfig;
 
 /**
+ * Class for determining the effective relying party for the Shibboleth attribute authority from the unique id of the
+ * service provider.
+ * 
  * @author Walter Hoehn
  */
 public class AAServiceProviderMapper extends ServiceProviderMapper {
@@ -63,6 +66,15 @@ public class AAServiceProviderMapper extends ServiceProviderMapper {
        private static Logger log = Logger.getLogger(AAServiceProviderMapper.class.getName());
        private AAConfig configuration;
 
+       /**
+         * Constructs a new service provider mapper for the attribute authority.
+        * 
+        * @param rawConfig DOM representation of the attribute authority configuration
+        * @param configuration global attribute authority configuration
+         *
+        * @throws ServiceProviderMapperException
+        *             if the configuration is invalid
+        */
        public AAServiceProviderMapper(Element rawConfig, AAConfig configuration) throws ServiceProviderMapperException {
 
                this.configuration = configuration;
@@ -91,10 +103,21 @@ public class AAServiceProviderMapper extends ServiceProviderMapper {
                }
        }
 
+        /**
+         * Returns the appropriate relying party for the supplied service provider id.
+         */
        public AARelyingParty getRelyingParty(String providerIdFromTarget) {
                return (AARelyingParty) getRelyingPartyImpl(providerIdFromTarget);
        }
 
+       protected ShibbolethOriginConfig getOriginConfig() {
+               return configuration;
+       }
+
+        /**
+         * AA-specific relying party implementation.
+         * @author Walter Hoehn
+         */
        class AARelyingPartyImpl extends BaseRelyingPartyImpl {
 
                private AAConfig aaConfig;
@@ -128,8 +151,4 @@ public class AAServiceProviderMapper extends ServiceProviderMapper {
                }
 
        }
-
-       protected ShibbolethOriginConfig getOriginConfig() {
-               return configuration;
-       }
 }
index 5cb8458..f6cfd7a 100644 (file)
@@ -56,6 +56,8 @@ import org.w3c.dom.Element;
 import edu.internet2.middleware.shibboleth.hs.HSNameIdentifierMapping;
 
 /**
+ * Base class for processing name identifier mapping configuration.
+ *
  * @author Walter Hoehn
  */
 public abstract class BaseNameIdentifierMapping implements NameIdentifierMapping {
index a061c1b..5aaf12b 100644 (file)
@@ -54,8 +54,9 @@ import java.security.interfaces.DSAPrivateKey;
 import java.security.interfaces.RSAPrivateKey;
 
 /**
+ * Used to prove identity or integrity of transmitted messages.
+ *
  * @author Walter Hoehn
- *  
  */
 public class Credential {
 
@@ -63,10 +64,16 @@ public class Credential {
        public static int RSA = 1;
        public static int DSA = 2;
 
-       private int type = 0;
+       private int type = UNKNOWN;
        private Key key;
        private X509Certificate[] certs;
 
+        /**
+         * Creates a X509 credential.
+         *
+         * @param certChain certificate chain corresponding to the private key
+         * @param key the RSA or DSA private key
+         */
        public Credential(X509Certificate[] certChain, PrivateKey key) {
                if (key instanceof RSAPrivateKey) {
                        type = RSA;
@@ -106,4 +113,4 @@ public class Credential {
        public X509Certificate[] getX509CertificateChain() {
                return certs;
        }
-}
\ No newline at end of file
+}
index a46fcfc..ac7cad3 100644 (file)
@@ -40,9 +40,20 @@ package edu.internet2.middleware.shibboleth.common;
 import org.w3c.dom.Element;
 
 /**
+ * Defines a method for loading a credential from a particular storage mechanism.
  * @author Walter Hoehn
- *  
  */
 public interface CredentialResolver {
+
+        /**
+         * Loads a credential as specified by the XML configuration.
+         *
+         * @param e DOM representation of credential resolver configuration
+         *
+         * @return the credential
+         *
+         * @throws CredentialFactoryException
+         *             if the credential could not be loaded
+         */
        Credential loadCredential(Element e) throws CredentialFactoryException;
-}
\ No newline at end of file
+}
index 1324f75..7f767ea 100644 (file)
@@ -85,8 +85,9 @@ import sun.misc.BASE64Decoder;
 import sun.security.util.DerValue;
 
 /**
+ * Uses {@link CredentialResolver} implementations to create {@link Credential}s.
+ *
  * @author Walter Hoehn
- *  
  */
 public class Credentials {
 
@@ -95,6 +96,10 @@ public class Credentials {
        private static Logger log = Logger.getLogger(Credentials.class.getName());
        private Hashtable data = new Hashtable();
 
+        /**
+         * Creates credentials based on XML configuration.
+         * @param e DOM representation of credentials configuration
+         */
        public Credentials(Element e) {
 
                if (!e.getLocalName().equals("Credentials")) {
@@ -187,6 +192,10 @@ class KeyInfoCredentialResolver implements CredentialResolver {
        }
 }
 
+/**
+ * Loads a credential from a file. Supports DER, PEM, encrypted PEM, PKCS8, and encrypted PKCS8 for RSA and DSA.
+ * @author Walter Hoehn
+ */
 class FileCredentialResolver implements CredentialResolver {
 
        private static Logger log = Logger.getLogger(FileCredentialResolver.class.getName());
@@ -1140,9 +1149,8 @@ class FileCredentialResolver implements CredentialResolver {
        }
 
        /**
-        * 
-        * Loads a specified bundle of certs individually and returns an array of <code>Certificate</code> objects. This
-        * is needed because the standard <code>CertificateFactory.getCertificates(InputStream)</code> method bails out
+        * Loads a specified bundle of certs individually and returns an array of {@link Certificate} objects. This
+        * is needed because the standard {@link CertificateFactory#getCertificates(InputStream)} method bails out
         * when it has trouble loading any cert and cannot handle "comments".
         */
        private Certificate[] loadCertificates(InputStream inStream, String certType) throws CredentialFactoryException {
@@ -1209,7 +1217,6 @@ class FileCredentialResolver implements CredentialResolver {
         * @throws InvalidCertificateChainException
         *             thrown if a chain cannot be constructed from the specified elements
         */
-
        protected void walkChain(X509Certificate[] chainSource, ArrayList chainDest) throws CredentialFactoryException {
 
                X509Certificate currentCert = (X509Certificate) chainDest.get(chainDest.size() - 1);
@@ -1236,7 +1243,6 @@ class FileCredentialResolver implements CredentialResolver {
         * @param privKey
         *            the private key
         */
-
        protected boolean isMatchingKey(PublicKey pubKey, PrivateKey privKey) {
 
                try {
@@ -1327,6 +1333,10 @@ class FileCredentialResolver implements CredentialResolver {
 
 }
 
+/**
+ * Loads a credential from a Java keystore. 
+ * @author Walter Hoehn
+ */
 class KeystoreCredentialResolver implements CredentialResolver {
 
        private static Logger log = Logger.getLogger(KeystoreCredentialResolver.class.getName());
@@ -1518,6 +1528,11 @@ class KeystoreCredentialResolver implements CredentialResolver {
        }
 }
 
+/**
+ * Uses implementation specified in the configuration to load a credential.
+ *
+ * @author Walter Hoehn
+ */
 class CustomCredentialResolver implements CredentialResolver {
 
        private static Logger log = Logger.getLogger(CustomCredentialResolver.class.getName());
index d64ae23..8880521 100644 (file)
@@ -65,7 +65,7 @@ public class NameMapper {
        private static Logger log = Logger.getLogger(NameMapper.class.getName());
        protected Map byFormat = new HashMap();
        private static Map registeredMappingTypes = Collections.synchronizedMap(new HashMap());
-       /** Indicated of whether mappings have been added */
+       /** true if mappings have been added */
        protected boolean initialized = false;
        /** Mapping to use if no other mappings have been added */
        protected SharedMemoryShibHandle defaultMapping;
@@ -91,7 +91,7 @@ public class NameMapper {
        }
 
        /**
-        * Constructs name mapper and loads a default name mapping.
+        * Constructs the name mapper and loads a default name mapping.
         */
        public NameMapper() {
                try {
@@ -174,8 +174,7 @@ public class NameMapper {
        }
 
        /**
-        * Adds a <code>NameIdentifierMapping</code> to this <code>NameMapper</code>, registering it according to its
-        * format.
+         * Adds a {@link NameIdentifierMapping} to this name mapper, registering it according to its format.
         * 
         * @param mapping
         *            the mapping to add
@@ -193,11 +192,11 @@ public class NameMapper {
        }
 
        /**
-        * Returns the <code>NameIdentifierMapping</code> registered for a given format
+        * Returns the {@link NameIdentifierMapping} registered for a given format.
         * 
         * @param format
         *            the registered format
-        * @return the mapping or <tt>null</tt> if no mapping is registered for the given format
+        * @return the mapping or <code>null</code> if no mapping is registered for the given format
         */
        public NameIdentifierMapping getNameIdentifierMapping(URI format) {
                if (!initialized) {
@@ -242,9 +241,9 @@ public class NameMapper {
         *            the provider handling the request
         * @return the local principal
         * @throws NameIdentifierMappingException
-        *             If the <code>NameMapper</code> encounters an internal error
+        *             If the {@link NameMapper} encounters an internal error
         * @throws InvalidNameIdentifierException
-        *             If the <code>SAMLNameIdentifier</code> contains invalid data
+        *             If the {@link SAMLNameIdentifier} contains invalid data
         */
        public AuthNPrincipal getPrincipal(SAMLNameIdentifier nameId, ServiceProvider sProv, IdentityProvider idProv)
                throws NameIdentifierMappingException, InvalidNameIdentifierException {
index 2df4d8b..e77749d 100644 (file)
@@ -51,8 +51,8 @@ import org.opensaml.SAMLNameIdentifier;
 import org.w3c.dom.Element;
 
 /**
- * <code>NameMapping</code> implementation that creates a principal from a
- * shared principal name.
+ * {@link NameIdentifierMapping} implementation to use when the SAML name identifier format matches the Shibboleth
+ * internal representation of the principal.
  * 
  * @author Walter Hoehn
  */
index 05fb21f..b25f54e 100644 (file)
@@ -58,8 +58,11 @@ import edu.internet2.middleware.shibboleth.aa.AARelyingParty;
 import edu.internet2.middleware.shibboleth.hs.HSRelyingParty;
 
 /**
+ * Base class for determining the effective relying party from the unique id of the service provider. Checks first for
+ * an exact match on the service provider, then for membership in a federation. Uses the default relying party if
+ * neither is found.
+ * 
  * @author Walter Hoehn
- *  
  */
 public abstract class ServiceProviderMapper {
 
@@ -135,15 +138,17 @@ public abstract class ServiceProviderMapper {
                return (RelyingParty) relyingParties.get(defaultParty);
        }
 
+        /**
+         * Base relying party implementation.
+         *
+         * @author Walter Hoehn
+         */
        protected abstract class BaseRelyingPartyImpl implements RelyingParty {
 
                protected RelyingPartyIdentityProvider identityProvider;
                protected String name;
                protected String overridenOriginProviderId;
 
-               /**
-                * Shared construction
-                */
                public BaseRelyingPartyImpl(Element partyConfig) throws ServiceProviderMapperException {
 
                        //Get party name
@@ -175,6 +180,10 @@ public abstract class ServiceProviderMapper {
                        return identityProvider;
                }
 
+                /**
+                 * Default identity provider implementation.
+                 * @author Walter Hoehn
+                 */
                protected class RelyingPartyIdentityProvider implements IdentityProvider {
 
                        private String providerId;
@@ -200,6 +209,11 @@ public abstract class ServiceProviderMapper {
                }
        }
 
+        /**
+         * Relying party implementation wrapper for relying parties that are federations.
+         * 
+         * @author Walter Hoehn
+         */
        class RelyingPartyGroupWrapper implements RelyingParty, HSRelyingParty, AARelyingParty {
 
                private RelyingParty wrapped;
@@ -254,6 +268,11 @@ public abstract class ServiceProviderMapper {
                }
        }
 
+        /**
+         * Relying party implementation wrapper for anonymous service providers.
+         *
+         * @author Walter Hoehn
+         */
        protected class UnknownProviderWrapper implements RelyingParty, HSRelyingParty, AARelyingParty {
                protected RelyingParty wrapped;
 
index 6c6f93f..e8d14fc 100644 (file)
@@ -56,25 +56,24 @@ import edu.internet2.middleware.shibboleth.common.NameIdentifierMappingException
 import edu.internet2.middleware.shibboleth.common.ServiceProvider;
 
 /**
- * Defines a mechanism for generating SAML Name Identifiers from <code>AuthNPrincipal</code>
- * objects.
+ * Adds a mechanism to the {@link NameIdentifierMapping} interface for generating SAML Name Identifiers from 
+ * {@link AuthNPrincipal} objects.
  * 
  * @author Walter Hoehn
  */
 public interface HSNameIdentifierMapping extends NameIdentifierMapping {
 
        /**
-        * @return the id of this mapping or <tt>null</tt> is it is not
+        * @return the id of this mapping or <code>null</code> is it is not
         *         configured with one
         */
        public String getId();
 
        /**
-        * 
         * Maps a local principal to a SAML Name Identifier.
         * 
         * @param id
-        *            the id under which the effective <code>HSNameIdentifierMapping</code>
+        *            the id under which the effective {@link HSNameIdentifierMapping}
         *            is registered
         * @param principal
         *            the principal to map
@@ -82,8 +81,9 @@ public interface HSNameIdentifierMapping extends NameIdentifierMapping {
         *            the provider initiating the request
         * @param idProv
         *            the provider handling the request
-        * @return @throws
-        *         NameIdentifierMappingException If the <code>NameMapper</code>
+        * @return the SAML name identifier
+
+         * @throws NameIdentifierMappingException If the {@link NameMapper}
         *         encounters an internal error
         */
        public SAMLNameIdentifier getNameIdentifierName(
index 8f0bbc4..d384753 100644 (file)
@@ -63,6 +63,9 @@ import edu.internet2.middleware.shibboleth.common.ServiceProviderMapperException
 import edu.internet2.middleware.shibboleth.common.ShibbolethOriginConfig;
 
 /**
+ * Class for determining the effective relying party for the Shibboleth handle service from the unique id of the service
+ * provider.
+ *
  * @author Walter Hoehn
  */
 public class HSServiceProviderMapper extends ServiceProviderMapper {
@@ -72,6 +75,17 @@ public class HSServiceProviderMapper extends ServiceProviderMapper {
        private Credentials credentials;
        private HSNameMapper nameMapper;
 
+       /**
+         * Constructs a new service provider mapper for the handle service.
+        * 
+        * @param rawConfig DOM representation of the handle service configuration
+        * @param configuration global handle service configuration
+        * @param credentials credentials for the handle service using this provider mapper
+        * @param nameMapper name mapper for the handle service using this provider mapper
+         *
+        * @throws ServiceProviderMapperException
+        *             if the configuration is invalid
+        */
        public HSServiceProviderMapper(
                Element rawConfig,
                HSConfig configuration,
@@ -107,6 +121,9 @@ public class HSServiceProviderMapper extends ServiceProviderMapper {
                }
        }
 
+        /**
+         * Returns the appropriate relying party for the supplied service provider id.
+         */
        public HSRelyingParty getRelyingParty(String providerIdFromTarget) {
 
                //If the target did not send a Provider Id, then assume it is a Shib
@@ -118,6 +135,15 @@ public class HSServiceProviderMapper extends ServiceProviderMapper {
 
                return (HSRelyingParty) getRelyingPartyImpl(providerIdFromTarget);
        }
+
+       protected ShibbolethOriginConfig getOriginConfig() {
+               return configuration;
+       }
+
+        /**
+         * HS-specific relying party implementation.
+         * @author Walter Hoehn
+         */
        class HSRelyingPartyImpl extends BaseRelyingPartyImpl implements HSRelyingParty {
 
                private URL overridenAAUrl;
@@ -242,6 +268,10 @@ public class HSServiceProviderMapper extends ServiceProviderMapper {
                }
        }
 
+        /**
+         * Relying party wrapper for Shibboleth &lt;=1.1 service providers.
+         * @author Walter Hoehn
+         */
        class LegacyWrapper extends UnknownProviderWrapper implements HSRelyingParty {
 
                LegacyWrapper(HSRelyingParty wrapped) {
@@ -264,8 +294,4 @@ public class HSServiceProviderMapper extends ServiceProviderMapper {
                }
        }
 
-       protected ShibbolethOriginConfig getOriginConfig() {
-               return configuration;
-       }
-
 }
index 58dff56..93540de 100644 (file)
@@ -1,48 +1,38 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation
- * for Advanced Internet Development, Inc. All rights reserved
+ * 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:
+ * 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 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.
+ * 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
+ * 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
+ * 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.
+ * 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.
  */
 package edu.internet2.middleware.shibboleth.hs.provider;
 
@@ -56,8 +46,7 @@ import edu.internet2.middleware.shibboleth.common.BaseNameIdentifierMapping;
 import edu.internet2.middleware.shibboleth.common.NameIdentifierMappingException;
 
 /**
- * Base class for <code>NameIdentifierMapping</code> implementations that
- * support Shibboleth Attribute Query Handles.
+ * Base class for {@link NameIdentifierMapping} implementations that support Shibboleth Attribute Query Handles.
  * 
  * @author Walter Hoehn
  */
index 4e8d1a9..b7abaf0 100644 (file)
@@ -93,9 +93,8 @@ import edu.internet2.middleware.shibboleth.common.ShibResource;
 import edu.internet2.middleware.shibboleth.hs.HSNameIdentifierMapping;
 
 /**
- * <code>HSNameIdentifierMapping</code> implementation that uses symmetric
- * encryption to securely transport principal data inside Shibboleth Attribute
- * Query Handles.
+ * {@link HSNameIdentifierMapping} implementation that uses symmetric encryption to store principal data inside
+ * Shibboleth Attribute Query Handles.
  * 
  * @author Walter Hoehn
  */
index 1008021..912416a 100644 (file)
@@ -67,8 +67,8 @@ import edu.internet2.middleware.shibboleth.common.ServiceProvider;
 import edu.internet2.middleware.shibboleth.hs.HSNameIdentifierMapping;
 
 /**
- * <code>HSNameIdentifierMapping</code> implementation that uses an in-memory
- * cache to store mappings between principal names and Shibboleth Attribute Query Handles.
+ * {@link HSNameIdentifierMapping} implementation that uses an in-memory cache to store mappings between principal names
+ * and Shibboleth Attribute Query Handles.
  * 
  * @author Walter Hoehn
  */