|
|||||||||||||||||||
| Source file | Conditionals | Statements | Methods | TOTAL | |||||||||||||||
| CasAuthoritiesPopulator.java | - | - | - | - |
|
||||||||||||||
| 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 | } |
|
||||||||||