001 package org.apache.turbine.services.security.ldap;
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements. See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership. The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License. You may obtain a copy of the License at
011 *
012 * http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied. See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022 import java.util.Properties;
023
024 import org.apache.turbine.services.security.TurbineSecurity;
025
026 /**
027 * <p>This is a static class for defining the default ldap confiquration
028 * keys used by core Turbine components.</p>
029 *
030 * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
031 * @author <a href="mailto:hhernandez@itweb.com.mx">Humberto Hernandez</a>
032 * @version $Id: LDAPSecurityConstants.java 957284 2010-06-23 17:53:31Z tv $
033 */
034 public class LDAPSecurityConstants
035 {
036 /** Property key */
037 public static final String LDAP_ADMIN_USERNAME_KEY = "ldap.admin.username";
038
039 /** Property key */
040 public static final String LDAP_ADMIN_PASSWORD_KEY = "ldap.admin.password";
041
042 /** Property key */
043 public static final String LDAP_HOST_KEY = "ldap.host";
044
045 /** Property default value */
046 public static final String LDAP_HOST_DEFAULT = "localhost";
047
048 /** Property key */
049 public static final String LDAP_PORT_KEY = "ldap.port";
050
051 /** Property default value */
052 public static final String LDAP_PORT_DEFAULT = "389";
053
054 /** Property key */
055 public static final String LDAP_PROVIDER_KEY = "ldap.provider";
056
057 /** Property default value */
058 public static final String LDAP_PROVIDER_DEFAULT =
059 "com.sun.jndi.ldap.LdapCtxFactory";
060
061 /** Property key */
062 public static final String LDAP_BASE_SEARCH_KEY = "ldap.basesearch";
063
064 /** Property key */
065 public static final String LDAP_AUTH_KEY = "ldap.security.authentication";
066
067 /** Property default value */
068 public static final String LDAP_AUTH_DEFAULT = "simple";
069
070 /** Property key */
071 public static final String LDAP_USER_USERID_KEY = "ldap.user.userid";
072
073 /** Property default value */
074 public static final String LDAP_USER_USERID_DEFAULT = "uid";
075
076 /** Property key */
077 public static final String LDAP_USER_USERNAME_KEY = "ldap.user.username";
078
079 /** Property default value */
080 public static final String LDAP_USER_USERNAME_DEFAULT = "turbineUserUniqueId";
081
082 /** Property key */
083 public static final String LDAP_USER_FIRSTNAME_KEY = "ldap.user.firstname";
084
085 /** Property default value */
086 public static final String LDAP_USER_FIRSTNAME_DEFAULT = "turbineUserFirstName";
087
088 /** Property key */
089 public static final String LDAP_USER_LASTNAME_KEY = "ldap.user.lastname";
090
091 /** Property default value */
092 public static final String LDAP_USER_LASTNAME_DEFAULT = "turbineUserLastName";
093
094 /** Property key */
095 public static final String LDAP_USER_EMAIL_KEY = "ldap.user.email";
096
097 /** Property default value */
098 public static final String LDAP_USER_EMAIL_DEFAULT = "turbineUserMailAddress";
099
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 }