1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.ldap.server.authn;
18
19 import javax.naming.NamingException;
20
21 import org.apache.ldap.common.exception.LdapNoPermissionException;
22 import org.apache.ldap.server.jndi.ServerContext;
23
24 /***
25 * An {@link Authenticator} that handles anonymous connections
26 * (type <tt>'none'</tt>).
27 *
28 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
29 */
30 public class AnonymousAuthenticator extends AbstractAuthenticator
31 {
32 /***
33 * Creates a new instance.
34 */
35 public AnonymousAuthenticator()
36 {
37 super( "none" );
38 }
39
40 /***
41 * If the context is not configured to allow anonymous connections,
42 * this method throws a {@link javax.naming.NoPermissionException}.
43 */
44 public LdapPrincipal authenticate( ServerContext ctx ) throws NamingException
45 {
46 if ( getFactoryConfiguration().getStartupConfiguration().isAllowAnonymousAccess() )
47 {
48 return LdapPrincipal.ANONYMOUS ;
49 }
50 else
51 {
52 throw new LdapNoPermissionException( "Anonymous bind NOT permitted!" );
53 }
54 }
55 }