1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.server.ldap.handlers.bind.plain;
21
22
23 import org.apache.directory.server.core.CoreSession;
24 import org.apache.directory.server.ldap.LdapSession;
25 import org.apache.directory.server.ldap.handlers.bind.AbstractMechanismHandler;
26 import org.apache.directory.server.ldap.handlers.bind.SaslConstants;
27 import org.apache.directory.shared.ldap.message.BindRequest;
28
29 import javax.security.sasl.SaslServer;
30
31
32
33
34
35
36
37
38
39 public class PlainMechanismHandler extends AbstractMechanismHandler
40 {
41
42
43
44
45 public SaslServer handleMechanism( LdapSession ldapSession, BindRequest bindRequest ) throws Exception
46 {
47 SaslServer ss = ( SaslServer ) ldapSession.getSaslProperty( SaslConstants.SASL_SERVER );
48
49 if ( ss == null )
50 {
51 CoreSession adminSession = ldapSession.getLdapServer().getDirectoryService().getAdminSession();
52
53 ss = new PlainSaslServer( ldapSession, adminSession, bindRequest );
54 ldapSession.putSaslProperty( SaslConstants.SASL_SERVER, ss );
55 }
56
57 return ss;
58 }
59
60
61
62
63
64 public void init( LdapSession ldapSession )
65 {
66
67 }
68
69
70
71
72
73
74
75 public void cleanup( LdapSession ldapSession )
76 {
77 ldapSession.clearSaslProperties();
78 }
79 }