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.sasl.plain;
21
22
23 import javax.security.sasl.SaslServer;
24
25 import org.apache.directory.api.ldap.model.message.BindRequest;
26 import org.apache.directory.server.core.api.CoreSession;
27 import org.apache.directory.server.ldap.LdapSession;
28 import org.apache.directory.server.ldap.handlers.sasl.AbstractMechanismHandler;
29 import org.apache.directory.server.ldap.handlers.sasl.SaslConstants;
30
31
32
33
34
35
36
37 public class PlainMechanismHandler extends AbstractMechanismHandler
38 {
39
40
41
42
43 public SaslServer handleMechanism( LdapSession ldapSession, BindRequest bindRequest ) throws Exception
44 {
45 SaslServer ss = ( SaslServer ) ldapSession.getSaslProperty( SaslConstants.SASL_SERVER );
46
47 if ( ss == null )
48 {
49 CoreSession adminSession = ldapSession.getLdapServer().getDirectoryService().getAdminSession();
50
51 ss = new PlainSaslServer( ldapSession, adminSession, bindRequest );
52 ldapSession.putSaslProperty( SaslConstants.SASL_SERVER, ss );
53 }
54
55 return ss;
56 }
57
58
59
60
61
62 public void init( LdapSession ldapSession )
63 {
64
65 }
66
67
68
69
70
71
72
73 public void cleanup( LdapSession ldapSession )
74 {
75 ldapSession.clearSaslProperties();
76 }
77 }