View Javadoc

1   /*
2    *   Copyright 2004 The Apache Software Foundation
3    *
4    *   Licensed under the Apache License, Version 2.0 (the "License");
5    *   you may not use this file except in compliance with the License.
6    *   You may obtain a copy of the License at
7    *
8    *       http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *   Unless required by applicable law or agreed to in writing, software
11   *   distributed under the License is distributed on an "AS IS" BASIS,
12   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *   See the License for the specific language governing permissions and
14   *   limitations under the License.
15   *
16   */
17  package org.apache.ldap.server.authn;
18  
19  
20  import org.apache.ldap.server.jndi.ServerContext;
21  
22  import javax.naming.NamingException;
23  
24  
25  /***
26   * Defines methods that all Authenticators must implement.
27   *
28   * <p>An AuthenticationService is a program that performs client authentication based on the authentication
29   * method/type that the client specifies in the JNDI properties.
30   *
31   * <p>To implement this interface, you can write an authenticator that extends org.apache.ldap.server.authn.AbstractAuthenticator.
32   *
33   * @see org.apache.ldap.server.authn.AbstractAuthenticator
34   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
35   * @version $Rev$
36   */
37  public interface Authenticator
38  {
39      public AuthenticatorConfig getAuthenticatorConfig();
40  
41      public String getAuthenticatorType();
42  
43      /***
44       * Called by the authenticator container to indicate that the authenticator is being placed into service.
45       *
46       * @param authenticatorConfig
47       * @throws NamingException
48       */
49      public void init( AuthenticatorConfig authenticatorConfig ) throws NamingException;
50  
51      /***
52       * Perform the authentication operation and return the authorization id if successfull.
53       *
54       * @param ctx
55       * @return the authorization id
56       * @throws NamingException
57       */
58      public LdapPrincipal authenticate( ServerContext ctx ) throws NamingException;
59  }