]> source.dussan.org Git - gitblit.git/commitdiff
Allow for different port for LDAP in-memory server. Update some documentation.
authorJohn Crygier <john.crygier@aon.com>
Tue, 10 Apr 2012 20:54:57 +0000 (15:54 -0500)
committerJohn Crygier <john.crygier@aon.com>
Tue, 10 Apr 2012 20:54:57 +0000 (15:54 -0500)
distrib/gitblit.properties
docs/01_setup.mkd
src/com/gitblit/GitBlitServer.java

index 147f2a1ee1f2f843639d286b43dce5f12a39448b..527b7268657e05ea23f4df6258225662d42fc3fc 100644 (file)
@@ -139,7 +139,7 @@ realm.minPasswordLength = 5
 # URL of the LDAP server.\r
 #\r
 # SINCE 1.0.0\r
-realm.ldap.server = ldap://my.ldap.server\r
+realm.ldap.server = ldap://localhost\r
 \r
 # Login username for LDAP searches.\r
 # The domain prefix may be omitted if it matches the domain specified in\r
@@ -149,12 +149,12 @@ realm.ldap.server = ldap://my.ldap.server
 # e.g. mydomain\\username\r
 #\r
 # SINCE 1.0.0\r
-realm.ldap.username =\r
+realm.ldap.username = cn=Directory Manager\r
 \r
 # Login password for LDAP searches.\r
 #\r
 # SINCE 1.0.0\r
-realm.ldap.password =\r
+realm.ldap.password = password\r
 \r
 # The LdapUserService must be backed by another user service for standard user\r
 # and team management.\r
@@ -177,38 +177,39 @@ realm.ldap.maintainTeams = false
 \r
 # Root node that all Users sit under in LDAP\r
 #\r
-# This is the node that searches for user information will begin from in LDAP\r
+# This is the root node that searches for user information will begin from in LDAP\r
 # If blank, it will search ALL of ldap.  \r
 #\r
 # SINCE 1.0.0\r
-realm.ldap.accountBase = ou=people,dc=example,dc=com\r
+realm.ldap.accountBase = OU=Users,OU=UserControl,OU=MyOrganization,DC=MyDomain\r
 \r
 # Filter Criteria for Users in LDAP\r
 #\r
 # Query pattern to use when searching for a user account. This may be any valid \r
-# LDAP query expression, including the standard (&) and (|) operators.\r
-# The variable ${username} is replaced  by the string entered by the end user\r
+# LDAP query expression, including the standard (&) and (|) operators.  Variables may\r
+# be injected via the ${variableName} syntax.  Recognized variables are:\r
+#    ${username} - The text entered as the user name\r
 #\r
 # SINCE 1.0.0\r
 realm.ldap.accountPattern = (&(objectClass=person)(sAMAccountName=${username}))\r
 \r
 # Root node that all Teams sit under in LDAP\r
 #\r
-# This is the node that searches for user information will begin from in LDAP\r
+# This is the node that searches for team information will begin from in LDAP\r
 # If blank, it will search ALL of ldap.  \r
 #\r
 # SINCE 1.0.0\r
-realm.ldap.groupBase = ou=groups,dc=example,dc=com\r
+realm.ldap.groupBase = OU=Groups,OU=UserControl,OU=MyOrganization,DC=MyDomain\r
 \r
 # Filter Criteria for Teams in LDAP\r
 #\r
 # Query pattern to use when searching for a team. This may be any valid \r
-# LDAP query expression, including the standard (&) and (|) operators.\r
-# The variable ${username} is replaced  by the string entered by the end user.\r
-# Other variables appearing in the pattern, such as ${fooBarAttribute}, \r
-# are replaced with the value of the corresponding attribute (in this case, fooBarAttribute) \r
-# as read from the user's account object matched under realm.ldap.accountBase. Attributes such \r
-# as ${dn} or ${uidNumber} may be useful.\r
+# LDAP query expression, including the standard (&) and (|) operators. Variables may\r
+# be injected via the ${variableName} syntax.  Recognized variables are:\r
+#    ${username} - The text entered as the user name\r
+#    ${dn} - The Distinguished Name of the user logged in\r
+# All attributes on the User's record are also passed in.  For example, if a user has an\r
+# attribute "fullName" set to "John", "(fn=${fullName})" will be translated to "(fn=John)".\r
 #\r
 # SINCE 1.0.0\r
 realm.ldap.groupMemberPattern = (&(objectClass=group)(member=${dn}))\r
index a7b4cdaaf2411b865abbb78235786b5232d105e6..c2e2ef1122091a173acb691fde6d7064c168b3a6 100644 (file)
@@ -504,6 +504,6 @@ The following is are descriptions of the properties that would follow the sample
 \r
 You may notice that there are no properties to find the password on the User record.  This is intentional, and the service utilizes the LDAP login process to verify that the user credentials are correct.\r
 \r
-You can also start Gitblit GO with an in-memory (backed by an LDIF file) LDAP server by using the --ldapLdifFile property.  It will always start at ldap://localhost:389, so be sure to set that in gitblit.settings.  It reads the user / password in gitblit.settings to create the root user login.\r
+You can also start Gitblit GO with an in-memory (backed by an LDIF file) LDAP server by using the --ldapLdifFile property.  It will listen where ever gitblit.settings is pointed to.  However, it only supports ldap...not ldaps, so be sure to set that in gitblit.settings.  It reads the user / password in gitblit.settings to create the root user login.\r
 \r
 Finally, writing back to LDAP is not implemented at this time, so do not worry about corrupting your corporate LDAP.  Many orgnizations are likely to go through a different flow to update their LDAP, so it's unlikely that this will become a feature.
\ No newline at end of file
index e8ee89cea1b0a1901d5b008869aa028372540f51..f4be8e9f6ba6f1933029af5ffbaaba2086712423 100644 (file)
@@ -23,6 +23,7 @@ import java.io.OutputStream;
 import java.net.InetAddress;\r
 import java.net.ServerSocket;\r
 import java.net.Socket;\r
+import java.net.URI;\r
 import java.net.URL;\r
 import java.net.UnknownHostException;\r
 import java.security.ProtectionDomain;\r
@@ -277,21 +278,27 @@ public class GitBlitServer {
                        if (StringUtils.isEmpty(params.ldapLdifFile) == false) {\r
                                File ldifFile = new File(params.ldapLdifFile);\r
                                if (ldifFile != null && ldifFile.exists()) {\r
+                                       URI ldapUrl = new URI(settings.getRequiredString(Keys.realm.ldap_server));\r
                                        String firstLine = new Scanner(ldifFile).nextLine();\r
                                        String rootDN = firstLine.substring(4);\r
                                        String bindUserName = settings.getString(Keys.realm.ldap_username, "");\r
                                        String bindPassword = settings.getString(Keys.realm.ldap_password, "");\r
                                        \r
+                                       // Get the port\r
+                                       int port = ldapUrl.getPort();\r
+                                       if (port == -1)\r
+                                               port = 389;\r
+                                       \r
                                        InMemoryDirectoryServerConfig config = new InMemoryDirectoryServerConfig(rootDN);\r
                                        config.addAdditionalBindCredentials(bindUserName, bindPassword);\r
-                                       config.setListenerConfigs(InMemoryListenerConfig.createLDAPConfig("default", 389));\r
+                                       config.setListenerConfigs(InMemoryListenerConfig.createLDAPConfig("default", port));\r
                                        config.setSchema(null);\r
                                        \r
                                        InMemoryDirectoryServer ds = new InMemoryDirectoryServer(config);\r
                                        ds.importFromLDIF(true, new LDIFReader(ldifFile));\r
                                        ds.startListening();\r
                                        \r
-                                       logger.info("LDAP Server started at ldap://localhost:389");\r
+                                       logger.info("LDAP Server started at ldap://localhost:" + port);\r
                                }\r
                        }\r
                } catch (Exception e) {\r