1 package org.apache.turbine.services.security.ldap;
2
3 /*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 import java.util.Properties;
23
24 import org.apache.turbine.services.security.TurbineSecurity;
25
26 /**
27 * <p>This is a static class for defining the default ldap confiquration
28 * keys used by core Turbine components.</p>
29 *
30 * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
31 * @author <a href="mailto:hhernandez@itweb.com.mx">Humberto Hernandez</a>
32 * @version $Id: LDAPSecurityConstants.java 957284 2010-06-23 17:53:31Z tv $
33 */
34 public class LDAPSecurityConstants
35 {
36 /** Property key */
37 public static final String LDAP_ADMIN_USERNAME_KEY = "ldap.admin.username";
38
39 /** Property key */
40 public static final String LDAP_ADMIN_PASSWORD_KEY = "ldap.admin.password";
41
42 /** Property key */
43 public static final String LDAP_HOST_KEY = "ldap.host";
44
45 /** Property default value */
46 public static final String LDAP_HOST_DEFAULT = "localhost";
47
48 /** Property key */
49 public static final String LDAP_PORT_KEY = "ldap.port";
50
51 /** Property default value */
52 public static final String LDAP_PORT_DEFAULT = "389";
53
54 /** Property key */
55 public static final String LDAP_PROVIDER_KEY = "ldap.provider";
56
57 /** Property default value */
58 public static final String LDAP_PROVIDER_DEFAULT =
59 "com.sun.jndi.ldap.LdapCtxFactory";
60
61 /** Property key */
62 public static final String LDAP_BASE_SEARCH_KEY = "ldap.basesearch";
63
64 /** Property key */
65 public static final String LDAP_AUTH_KEY = "ldap.security.authentication";
66
67 /** Property default value */
68 public static final String LDAP_AUTH_DEFAULT = "simple";
69
70 /** Property key */
71 public static final String LDAP_USER_USERID_KEY = "ldap.user.userid";
72
73 /** Property default value */
74 public static final String LDAP_USER_USERID_DEFAULT = "uid";
75
76 /** Property key */
77 public static final String LDAP_USER_USERNAME_KEY = "ldap.user.username";
78
79 /** Property default value */
80 public static final String LDAP_USER_USERNAME_DEFAULT = "turbineUserUniqueId";
81
82 /** Property key */
83 public static final String LDAP_USER_FIRSTNAME_KEY = "ldap.user.firstname";
84
85 /** Property default value */
86 public static final String LDAP_USER_FIRSTNAME_DEFAULT = "turbineUserFirstName";
87
88 /** Property key */
89 public static final String LDAP_USER_LASTNAME_KEY = "ldap.user.lastname";
90
91 /** Property default value */
92 public static final String LDAP_USER_LASTNAME_DEFAULT = "turbineUserLastName";
93
94 /** Property key */
95 public static final String LDAP_USER_EMAIL_KEY = "ldap.user.email";
96
97 /** Property default value */
98 public static final String LDAP_USER_EMAIL_DEFAULT = "turbineUserMailAddress";
99
100 /** Property key */
101 public static final String LDAP_USER_PASSWORD_KEY = "ldap.user.password";
102
103 /** Property default value */
104 public static final String LDAP_USER_PASSWORD_DEFAULT = "userPassword";
105
106 /**
107 * Get all the properties for the security service.
108 * @return all the properties of the security service.
109 */
110 public static Properties getProperties()
111 {
112 return TurbineSecurity.getService().getProperties();
113 }
114
115 /**
116 * Get a property from the LDAP security service.
117 * @param key The key to access the value of the property.
118 * @return The value of the property.
119 */
120 public static String getProperty(String key)
121 {
122 return getProperties().getProperty(key);
123 }
124
125 /**
126 * Get a property from the LDAP security service.
127 * @param key The key to access the value of the property.
128 * @param defaultValue The value that the property takes
129 * when it doesn't exist.
130 * @return The value of the property.
131 */
132 public static String getProperty(String key, String defaultValue)
133 {
134 return getProperties().getProperty(key, defaultValue);
135 }
136
137 /**
138 * Get the value of the property for the administration username.
139 * @return the value of the property.
140 */
141 public static String getAdminUsername()
142 {
143 String str = getProperty(LDAP_ADMIN_USERNAME_KEY);
144
145 /*
146 * The adminUsername string contains some
147 * characters that need to be transformed.
148 */
149 str = str.replace('/', '=');
150 str = str.replace('%', ',');
151 return str;
152 }
153
154 /**
155 * Get the value of the property for the administration password.
156 * @return the value of the property.
157 */
158 public static String getAdminPassword()
159 {
160 return getProperty(LDAP_ADMIN_PASSWORD_KEY);
161 }
162
163 /**
164 * Get the value of the property for the LDAP Host.
165 * @return the value of the property.
166 */
167 public static String getLDAPHost()
168 {
169 return getProperty(LDAP_HOST_KEY, LDAP_HOST_DEFAULT);
170 }
171
172 /**
173 * Get the value of the property for the LDAP Port.
174 * @return the value of the property.
175 */
176 public static String getLDAPPort()
177 {
178 return getProperty(LDAP_PORT_KEY, LDAP_PORT_DEFAULT);
179 }
180
181 /**
182 * Get the value of the property for the LDAP Provider.
183 * @return the value of the property.
184 */
185 public static String getLDAPProvider()
186 {
187 return getProperty(LDAP_PROVIDER_KEY, LDAP_PROVIDER_DEFAULT);
188 }
189
190 /**
191 * Get value of the property for the Base Search.
192 * @return the value of the property.
193 */
194 public static String getBaseSearch()
195 {
196 String str = getProperty(LDAP_BASE_SEARCH_KEY);
197
198 /*
199 * The userBaseSearch string contains some
200 * characters that need to be transformed.
201 */
202 str = str.replace('/', '=');
203 str = str.replace('%', ',');
204 return str;
205 }
206
207 /**
208 * Get the value of the property for the Authentication
209 * mechanism. Valid values are: none, simple,
210 * @return the value of the property.
211 */
212 public static String getLDAPAuthentication()
213 {
214 return getProperty(LDAP_AUTH_KEY, LDAP_AUTH_DEFAULT);
215 }
216
217 /**
218 * Get the value of the User id Attribute.
219 * @return the value of the property.
220 */
221 public static String getUserIdAttribute()
222 {
223 return getProperty(LDAP_USER_USERID_KEY, LDAP_USER_USERID_DEFAULT);
224 }
225
226 /**
227 * Get the value of the Username Attribute.
228 * @return the value of the property.
229 */
230 public static String getNameAttribute()
231 {
232 return getProperty(LDAP_USER_USERNAME_KEY, LDAP_USER_USERNAME_DEFAULT);
233 }
234
235 /**
236 * Get the value of the Username Attribute.
237 * @return the value of the property.
238 * @deprecated Use getNameAttribute()
239 */
240 public static String getUserNameAttribute()
241 {
242 return getNameAttribute();
243 }
244
245 /**
246 * Get the value of the Firstname Attribute.
247 * @return the value of the property.
248 */
249 public static String getFirstNameAttribute()
250 {
251 return getProperty(LDAP_USER_FIRSTNAME_KEY,
252 LDAP_USER_FIRSTNAME_DEFAULT);
253 }
254
255 /**
256 * Get the value of the Lastname Attribute.
257 * @return the value of the property.
258 */
259 public static String getLastNameAttribute()
260 {
261 return getProperty(LDAP_USER_LASTNAME_KEY, LDAP_USER_LASTNAME_DEFAULT);
262 }
263
264 /**
265 * Get the value of the Password Attribute.
266 * @return the value of the property.
267 */
268 public static String getPasswordAttribute()
269 {
270 return getProperty(LDAP_USER_PASSWORD_KEY, LDAP_USER_PASSWORD_DEFAULT);
271 }
272
273 /**
274 * Get the value of the E-Mail Attribute.
275 * @return the value of the property.
276 */
277 public static String getEmailAttribute()
278 {
279 return getProperty(LDAP_USER_EMAIL_KEY, LDAP_USER_EMAIL_DEFAULT);
280 }
281
282 }