1 package com.atlassian.user.impl.ldap.properties;
2
3 public class DefaultLdapConnectionProperties implements LdapConnectionProperties
4 {
5 public static final int DEFAULT_LDAP_PORT = 389;
6 public static final int DEFAULT_BATCH_SIZE = 1000;
7 public static final int DEFAULT_CONNECT_TIMEOUT_MILLIS = 30000;
8 public static final int DEFAULT_READ_TIMEOUT_MILLIS = 60000;
9 public static final String DEFAULT_AUTHENTICATION = "simple";
10
11 private static final String LDAPS_PROTOCOL = "ldaps";
12 private static final String LDAP_PROTOCOL = "ldap";
13
14 private String securityPrincipal;
15 private String securityCredential;
16 private String host;
17 private int port = DEFAULT_LDAP_PORT;
18 private String jndiInitialContextFactoryIdentifier;
19 private int searchBatchSize = DEFAULT_BATCH_SIZE;
20 private String securityAuthentication = DEFAULT_AUTHENTICATION;
21 private String securityProtocol;
22 private boolean isPoolingOn = true;
23 private int connectTimeoutMillis = DEFAULT_CONNECT_TIMEOUT_MILLIS;
24 private int readTimeoutMillis = DEFAULT_READ_TIMEOUT_MILLIS;
25
26
27
28
29
30 private String providerURL;
31
32 public String getSecurityPrincipal()
33 {
34 return securityPrincipal;
35 }
36
37 public String getSecurityCredential()
38 {
39 return securityCredential;
40 }
41
42
43
44
45
46
47
48 public String getProviderURL()
49 {
50 if (providerURL != null)
51 return providerURL;
52 return getConnectionProtocol() + "://" + host + ":" + port;
53 }
54
55 private String getConnectionProtocol()
56 {
57 return isSslEnabled() ? LDAPS_PROTOCOL : LDAP_PROTOCOL;
58 }
59
60 private boolean isSslEnabled()
61 {
62 return securityProtocol != null && securityProtocol.toLowerCase().indexOf("ssl") != -1;
63 }
64
65 public String getJNDIInitialContextFactoryIdentifier()
66 {
67 return jndiInitialContextFactoryIdentifier;
68 }
69
70 public int getSearchBatchSize()
71 {
72 return searchBatchSize;
73 }
74
75 public String getSecurityAuthentication()
76 {
77 return securityAuthentication;
78 }
79
80 public String getSecurityProtocol()
81 {
82 return securityProtocol;
83 }
84
85 public boolean isPoolingOn()
86 {
87 return isPoolingOn;
88 }
89
90 public int getConnectTimeoutMillis()
91 {
92 return connectTimeoutMillis;
93 }
94
95 public int getReadTimeoutMillis()
96 {
97 return readTimeoutMillis;
98 }
99
100 public void setSecurityPrincipal(String securityPrincipal)
101 {
102 this.securityPrincipal = securityPrincipal;
103 }
104
105 public void setSecurityCredential(String securityCredential)
106 {
107 this.securityCredential = securityCredential;
108 }
109
110 public void setHost(String host)
111 {
112 this.host = host;
113 }
114
115 public void setPort(int port)
116 {
117 this.port = port;
118 }
119
120 public void setJndiInitialContextFactoryIdentifier(String jndiInitialContextFactoryIdentifier)
121 {
122 this.jndiInitialContextFactoryIdentifier = jndiInitialContextFactoryIdentifier;
123 }
124
125 public void setSearchBatchSize(int searchBatchSize)
126 {
127 this.searchBatchSize = searchBatchSize;
128 }
129
130 public void setSecurityAuthentication(String securityAuthentication)
131 {
132 this.securityAuthentication = securityAuthentication;
133 }
134
135 public void setSecurityProtocol(String securityProtocol)
136 {
137 this.securityProtocol = securityProtocol;
138 }
139
140 public void setPoolingOn(boolean poolingOn)
141 {
142 isPoolingOn = poolingOn;
143 }
144
145 public void setProviderURL(String providerURL)
146 {
147 this.providerURL = providerURL;
148 }
149
150 public void setConnectTimeoutMillis(int connectTimeoutMillis)
151 {
152 this.connectTimeoutMillis = connectTimeoutMillis;
153 }
154
155 public void setReadTimeoutMillis(int readTimeoutMillis)
156 {
157 this.readTimeoutMillis = readTimeoutMillis;
158 }
159
160 public String toString()
161 {
162 return "{ url: " + getProviderURL() + ", " +
163 "authentication: '" + getSecurityAuthentication() + "', " +
164 "protocol: '" + getSecurityProtocol() + "', " +
165 "poolingOn: '" + isPoolingOn() + "' }";
166 }
167 }