View Javadoc

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.rcp;
17  
18  import org.acegisecurity.GrantedAuthority;
19  
20  
21  /***
22   * Allows remote clients to attempt authentication.
23   *
24   * @author Ben Alex
25   * @version $Id: RemoteAuthenticationManager.java,v 1.2 2005/11/17 00:55:51 benalex Exp $
26   */
27  public interface RemoteAuthenticationManager {
28      //~ Methods ================================================================
29  
30      /***
31       * Attempts to authenticate the remote client using the presented username
32       * and password. If authentication is successful, an array of
33       * <code>GrantedAuthority[]</code> objects will be returned.
34       * 
35       * <P>
36       * In order to maximise remoting protocol compatibility, a design decision
37       * was taken to operate with minimal arguments and return only the minimal
38       * amount information required for remote clients to enable/disable
39       * relevant user interface commands etc. There is nothing preventing users
40       * from implementing their own equivalent package that works with more
41       * complex object types.
42       * </p>
43       *
44       * @param username the username the remote client wishes to authenticate
45       *        with
46       * @param password the password the remote client wishes to authenticate
47       *        wish
48       *
49       * @return all of the granted authorities the specified username and
50       *         password have access to
51       *
52       * @throws RemoteAuthenticationException if the authentication failed
53       */
54      public GrantedAuthority[] attemptAuthentication(String username,
55          String password) throws RemoteAuthenticationException;
56  }