Clover coverage report - Acegi Security System for Spring - 1.0.0-RC1
Coverage timestamp: Mon Dec 5 2005 09:05:15 EST
file stats: LOC: 74   Methods: 0
NCLOC: 7   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
CasAuthoritiesPopulator.java - - - -
coverage
 1    /* Copyright 2004 Acegi Technology Pty Limited
 2    *
 3    * Licensed under the Apache License, Version 2.0 (the "License");
 4    * you may not use this file except in compliance with the License.
 5    * You may obtain a copy of the License at
 6    *
 7    * http://www.apache.org/licenses/LICENSE-2.0
 8    *
 9    * Unless required by applicable law or agreed to in writing, software
 10    * distributed under the License is distributed on an "AS IS" BASIS,
 11    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12    * See the License for the specific language governing permissions and
 13    * limitations under the License.
 14    */
 15   
 16    package org.acegisecurity.providers.cas;
 17   
 18    import org.acegisecurity.AuthenticationException;
 19    import org.acegisecurity.userdetails.UserDetails;
 20   
 21   
 22    /**
 23    * Populates the <code>UserDetails</code> associated with a CAS authenticated
 24    * user.
 25    *
 26    * <P>
 27    * CAS does not provide the authorities (roles) granted to a user. It merely
 28    * authenticates their identity. As the Acegi Security System for Spring needs
 29    * to know the authorities granted to a user in order to construct a valid
 30    * <code>Authentication</code> object, implementations of this interface will
 31    * provide this information.
 32    * </p>
 33    *
 34    * <P>
 35    * A {@link UserDetails} is returned by implementations. The
 36    * <code>UserDetails</code> must, at minimum, contain the username and
 37    * <code>GrantedAuthority[]</code> objects applicable to the CAS-authenticated
 38    * user. Note that Acegi Security ignores the password and enabled/disabled
 39    * status of the <code>UserDetails</code> because this is
 40    * authentication-related and should have been enforced by the CAS server. The
 41    * <code>UserDetails</code> returned by implementations is stored in the
 42    * generated <code>CasAuthenticationToken</code>, so additional properties
 43    * such as email addresses, telephone numbers etc can easily be stored.
 44    * </p>
 45    *
 46    * <P>
 47    * Implementations should not perform any caching. They will only be called
 48    * when a refresh is required.
 49    * </p>
 50    *
 51    * @author Ben Alex
 52    * @version $Id: CasAuthoritiesPopulator.java,v 1.4 2005/11/29 13:10:07 benalex Exp $
 53    */
 54    public interface CasAuthoritiesPopulator {
 55    //~ Methods ================================================================
 56   
 57    /**
 58    * Obtains the granted authorities for the specified user.
 59    *
 60    * <P>
 61    * May throw any <code>AuthenticationException</code> or return
 62    * <code>null</code> if the authorities are unavailable.
 63    * </p>
 64    *
 65    * @param casUserId as obtained from the CAS validation service
 66    *
 67    * @return the details of the indicated user (at minimum the granted
 68    * authorities and the username)
 69    *
 70    * @throws AuthenticationException DOCUMENT ME!
 71    */
 72    public UserDetails getUserDetails(String casUserId)
 73    throws AuthenticationException;
 74    }