--- /dev/null
+dn: dc=enterprise,dc=org
+objectClass: dcObject
+objectClass: organization
+o: acme
+
+dn: cn=admin,dc=enterprise,dc=org
+objectClass: person
+cn: admin
+sn: admin
+description: "LDAP Admin"
+
+dn: ou=crew,dc=enterprise,dc=org
+ou: crew
+objectClass: organizationalUnit
+
+
+dn: cn=kirkj,ou=crew,dc=enterprise,dc=org
+cn: kirkj
+sn: Kirk
+gn: James Tiberius
+mail: james.kirk@enterprise.org
+objectClass: inetOrgPerson
+
+dn: cn=spock,ou=crew,dc=enterprise,dc=org
+cn: spock
+sn: Spock
+mail: spock@enterprise.org
+objectClass: inetOrgPerson
+
+dn: cn=mccoyl,ou=crew,dc=enterprise,dc=org
+cn: mccoyl
+sn: McCoy
+gn: Leonard
+mail: leonard.mccoy@enterprise.org
+objectClass: inetOrgPerson
+
+dn: cn=scottm,ou=crew,dc=enterprise,dc=org
+cn: scottm
+sn: Scott
+gn: Montgomery
+mail: Montgomery.scott@enterprise.org
+objectClass: inetOrgPerson
+
+dn: cn=uhuran,ou=crew,dc=enterprise,dc=org
+cn: uhuran
+sn: Uhura
+gn: Nyota
+mail: nyota.uhura@enterprise.org
+objectClass: inetOrgPerson
+
+dn: cn=suluh,ou=crew,dc=enterprise,dc=org
+cn: suluh
+sn: Sulu
+gn: Hikaru
+mail: hikaru.sulu@enterprise.org
+objectClass: inetOrgPerson
+
+dn: cn=chekovp,ou=crew,dc=enterprise,dc=org
+cn: chekovp
+sn: Chekov
+gn: pavel
+mail: pavel.chekov@enterprise.org
+objectClass: inetOrgPerson
--- /dev/null
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "errors"
+ "fmt"
+ "log"
+
+ "github.com/gogits/gogs/modules/ldap"
+)
+
+var (
+ LdapServer string = "localhost"
+ LdapPort uint16 = 389
+ BaseDN string = "dc=enterprise,dc=org"
+ BindDN string = "cn=admin,dc=enterprise,dc=org"
+ BindPW string = "enterprise"
+ Filter string = "(cn=kirkj)"
+)
+
+func search(l *ldap.Conn, filter string, attributes []string) (*ldap.Entry, *ldap.Error) {
+ search := ldap.NewSearchRequest(
+ BaseDN,
+ ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
+ filter,
+ attributes,
+ nil)
+
+ sr, err := l.Search(search)
+ if err != nil {
+ log.Fatalf("ERROR: %s\n", err)
+ return nil, err
+ }
+
+ log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries))
+ if len(sr.Entries) == 0 {
+ return nil, ldap.NewError(ldap.ErrorDebugging, errors.New(fmt.Sprintf("no entries found for: %s", filter)))
+ }
+ return sr.Entries[0], nil
+}
+
+func main() {
+ l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort))
+ if err != nil {
+ log.Fatalf("ERROR: %s\n", err.Error())
+ }
+ defer l.Close()
+ // l.Debug = true
+
+ l.Bind(BindDN, BindPW)
+
+ log.Printf("The Search for Kirk ... %s\n", Filter)
+ entry, err := search(l, Filter, []string{})
+ if err != nil {
+ log.Fatal("could not get entry")
+ }
+ entry.PrettyPrint(0)
+
+ log.Printf("modify the mail address and add a description ... \n")
+ modify := ldap.NewModifyRequest(entry.DN)
+ modify.Add("description", []string{"Captain of the USS Enterprise"})
+ modify.Replace("mail", []string{"captain@enterprise.org"})
+ if err := l.Modify(modify); err != nil {
+ log.Fatalf("ERROR: %s\n", err.Error())
+ }
+
+ entry, err = search(l, Filter, []string{})
+ if err != nil {
+ log.Fatal("could not get entry")
+ }
+ entry.PrettyPrint(0)
+
+ log.Printf("reset the entry ... \n")
+ modify = ldap.NewModifyRequest(entry.DN)
+ modify.Delete("description", []string{})
+ modify.Replace("mail", []string{"james.kirk@enterprise.org"})
+ if err := l.Modify(modify); err != nil {
+ log.Fatalf("ERROR: %s\n", err.Error())
+ }
+
+ entry, err = search(l, Filter, []string{})
+ if err != nil {
+ log.Fatal("could not get entry")
+ }
+ entry.PrettyPrint(0)
+}
--- /dev/null
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/gogits/gogs/modules/ldap"
+)
+
+var (
+ ldapServer string = "adserver"
+ ldapPort uint16 = 3268
+ baseDN string = "dc=*,dc=*"
+ filter string = "(&(objectClass=user)(sAMAccountName=*)(memberOf=CN=*,OU=*,DC=*,DC=*))"
+ Attributes []string = []string{"memberof"}
+ user string = "*"
+ passwd string = "*"
+)
+
+func main() {
+ l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", ldapServer, ldapPort))
+ if err != nil {
+ log.Fatalf("ERROR: %s\n", err.Error())
+ }
+ defer l.Close()
+ // l.Debug = true
+
+ err = l.Bind(user, passwd)
+ if err != nil {
+ log.Printf("ERROR: Cannot bind: %s\n", err.Error())
+ return
+ }
+ search := ldap.NewSearchRequest(
+ baseDN,
+ ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
+ filter,
+ Attributes,
+ nil)
+
+ sr, err := l.Search(search)
+ if err != nil {
+ log.Fatalf("ERROR: %s\n", err.Error())
+ return
+ }
+
+ log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries))
+ sr.PrettyPrint(0)
+}
--- /dev/null
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/gogits/gogs/modules/ldap"
+)
+
+var (
+ LdapServer string = "localhost"
+ LdapPort uint16 = 636
+ BaseDN string = "dc=enterprise,dc=org"
+ Filter string = "(cn=kirkj)"
+ Attributes []string = []string{"mail"}
+)
+
+func main() {
+ l, err := ldap.DialSSL("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort), nil)
+ if err != nil {
+ log.Fatalf("ERROR: %s\n", err.String())
+ }
+ defer l.Close()
+ // l.Debug = true
+
+ search := ldap.NewSearchRequest(
+ BaseDN,
+ ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
+ Filter,
+ Attributes,
+ nil)
+
+ sr, err := l.Search(search)
+ if err != nil {
+ log.Fatalf("ERROR: %s\n", err.String())
+ return
+ }
+
+ log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries))
+ sr.PrettyPrint(0)
+}
--- /dev/null
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/gogits/gogs/modules/ldap"
+)
+
+var (
+ LdapServer string = "localhost"
+ LdapPort uint16 = 389
+ BaseDN string = "dc=enterprise,dc=org"
+ Filter string = "(cn=kirkj)"
+ Attributes []string = []string{"mail"}
+)
+
+func main() {
+ l, err := ldap.DialTLS("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort), nil)
+ if err != nil {
+ log.Fatalf("ERROR: %s\n", err.Error())
+ }
+ defer l.Close()
+ // l.Debug = true
+
+ search := ldap.NewSearchRequest(
+ BaseDN,
+ ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
+ Filter,
+ Attributes,
+ nil)
+
+ sr, err := l.Search(search)
+ if err != nil {
+ log.Fatalf("ERROR: %s\n", err.Error())
+ return
+ }
+
+ log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries))
+ sr.PrettyPrint(0)
+}
--- /dev/null
+#
+# See slapd.conf(5) for details on configuration options.
+# This file should NOT be world readable.
+#
+include /private/etc/openldap/schema/core.schema
+include /private/etc/openldap/schema/cosine.schema
+include /private/etc/openldap/schema/inetorgperson.schema
+
+# Define global ACLs to disable default read access.
+
+# Do not enable referrals until AFTER you have a working directory
+# service AND an understanding of referrals.
+#referral ldap://root.openldap.org
+
+pidfile /private/var/db/openldap/run/slapd.pid
+argsfile /private/var/db/openldap/run/slapd.args
+
+# Load dynamic backend modules:
+# modulepath /usr/libexec/openldap
+# moduleload back_bdb.la
+# moduleload back_hdb.la
+# moduleload back_ldap.la
+
+# Sample security restrictions
+# Require integrity protection (prevent hijacking)
+# Require 112-bit (3DES or better) encryption for updates
+# Require 63-bit encryption for simple bind
+# security ssf=1 update_ssf=112 simple_bind=64
+
+# Sample access control policy:
+# Root DSE: allow anyone to read it
+# Subschema (sub)entry DSE: allow anyone to read it
+# Other DSEs:
+# Allow self write access
+# Allow authenticated users read access
+# Allow anonymous users to authenticate
+# Directives needed to implement policy:
+# access to dn.base="" by * read
+# access to dn.base="cn=Subschema" by * read
+# access to *
+# by self write
+# by users read
+# by anonymous auth
+#
+# if no access controls are present, the default policy
+# allows anyone and everyone to read anything but restricts
+# updates to rootdn. (e.g., "access to * by * read")
+#
+# rootdn can always read and write EVERYTHING!
+
+#######################################################################
+# BDB database definitions
+#######################################################################
+
+database bdb
+suffix "dc=enterprise,dc=org"
+rootdn "cn=admin,dc=enterprise,dc=org"
+# Cleartext passwords, especially for the rootdn, should
+# be avoid. See slappasswd(8) and slapd.conf(5) for details.
+# Use of strong authentication encouraged.
+rootpw {SSHA}laO00HsgszhK1O0Z5qR0/i/US69Osfeu
+# The database directory MUST exist prior to running slapd AND
+# should only be accessible by the slapd and slap tools.
+# Mode 700 recommended.
+directory /private/var/db/openldap/openldap-data
+# Indices to maintain
+index objectClass eq
+++ /dev/null
-dn: dc=enterprise,dc=org
-objectClass: dcObject
-objectClass: organization
-o: acme
-
-dn: cn=admin,dc=enterprise,dc=org
-objectClass: person
-cn: admin
-sn: admin
-description: "LDAP Admin"
-
-dn: ou=crew,dc=enterprise,dc=org
-ou: crew
-objectClass: organizationalUnit
-
-
-dn: cn=kirkj,ou=crew,dc=enterprise,dc=org
-cn: kirkj
-sn: Kirk
-gn: James Tiberius
-mail: james.kirk@enterprise.org
-objectClass: inetOrgPerson
-
-dn: cn=spock,ou=crew,dc=enterprise,dc=org
-cn: spock
-sn: Spock
-mail: spock@enterprise.org
-objectClass: inetOrgPerson
-
-dn: cn=mccoyl,ou=crew,dc=enterprise,dc=org
-cn: mccoyl
-sn: McCoy
-gn: Leonard
-mail: leonard.mccoy@enterprise.org
-objectClass: inetOrgPerson
-
-dn: cn=scottm,ou=crew,dc=enterprise,dc=org
-cn: scottm
-sn: Scott
-gn: Montgomery
-mail: Montgomery.scott@enterprise.org
-objectClass: inetOrgPerson
-
-dn: cn=uhuran,ou=crew,dc=enterprise,dc=org
-cn: uhuran
-sn: Uhura
-gn: Nyota
-mail: nyota.uhura@enterprise.org
-objectClass: inetOrgPerson
-
-dn: cn=suluh,ou=crew,dc=enterprise,dc=org
-cn: suluh
-sn: Sulu
-gn: Hikaru
-mail: hikaru.sulu@enterprise.org
-objectClass: inetOrgPerson
-
-dn: cn=chekovp,ou=crew,dc=enterprise,dc=org
-cn: chekovp
-sn: Chekov
-gn: pavel
-mail: pavel.chekov@enterprise.org
-objectClass: inetOrgPerson
+++ /dev/null
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
- "errors"
- "fmt"
- "log"
-
- "github.com/juju2013/goldap"
-)
-
-var (
- LdapServer string = "localhost"
- LdapPort uint16 = 389
- BaseDN string = "dc=enterprise,dc=org"
- BindDN string = "cn=admin,dc=enterprise,dc=org"
- BindPW string = "enterprise"
- Filter string = "(cn=kirkj)"
-)
-
-func search(l *ldap.Conn, filter string, attributes []string) (*ldap.Entry, *ldap.Error) {
- search := ldap.NewSearchRequest(
- BaseDN,
- ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
- filter,
- attributes,
- nil)
-
- sr, err := l.Search(search)
- if err != nil {
- log.Fatalf("ERROR: %s\n", err)
- return nil, err
- }
-
- log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries))
- if len(sr.Entries) == 0 {
- return nil, ldap.NewError(ldap.ErrorDebugging, errors.New(fmt.Sprintf("no entries found for: %s", filter)))
- }
- return sr.Entries[0], nil
-}
-
-func main() {
- l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort))
- if err != nil {
- log.Fatalf("ERROR: %s\n", err.Error())
- }
- defer l.Close()
- // l.Debug = true
-
- l.Bind(BindDN, BindPW)
-
- log.Printf("The Search for Kirk ... %s\n", Filter)
- entry, err := search(l, Filter, []string{})
- if err != nil {
- log.Fatal("could not get entry")
- }
- entry.PrettyPrint(0)
-
- log.Printf("modify the mail address and add a description ... \n")
- modify := ldap.NewModifyRequest(entry.DN)
- modify.Add("description", []string{"Captain of the USS Enterprise"})
- modify.Replace("mail", []string{"captain@enterprise.org"})
- if err := l.Modify(modify); err != nil {
- log.Fatalf("ERROR: %s\n", err.Error())
- }
-
- entry, err = search(l, Filter, []string{})
- if err != nil {
- log.Fatal("could not get entry")
- }
- entry.PrettyPrint(0)
-
- log.Printf("reset the entry ... \n")
- modify = ldap.NewModifyRequest(entry.DN)
- modify.Delete("description", []string{})
- modify.Replace("mail", []string{"james.kirk@enterprise.org"})
- if err := l.Modify(modify); err != nil {
- log.Fatalf("ERROR: %s\n", err.Error())
- }
-
- entry, err = search(l, Filter, []string{})
- if err != nil {
- log.Fatal("could not get entry")
- }
- entry.PrettyPrint(0)
-}
+++ /dev/null
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
- "fmt"
- "log"
-
- "github.com/juju2013/goldap"
-)
-
-var (
- ldapServer string = "adserver"
- ldapPort uint16 = 3268
- baseDN string = "dc=*,dc=*"
- filter string = "(&(objectClass=user)(sAMAccountName=*)(memberOf=CN=*,OU=*,DC=*,DC=*))"
- Attributes []string = []string{"memberof"}
- user string = "*"
- passwd string = "*"
-)
-
-func main() {
- l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", ldapServer, ldapPort))
- if err != nil {
- log.Fatalf("ERROR: %s\n", err.Error())
- }
- defer l.Close()
- // l.Debug = true
-
- err = l.Bind(user, passwd)
- if err != nil {
- log.Printf("ERROR: Cannot bind: %s\n", err.Error())
- return
- }
- search := ldap.NewSearchRequest(
- baseDN,
- ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
- filter,
- Attributes,
- nil)
-
- sr, err := l.Search(search)
- if err != nil {
- log.Fatalf("ERROR: %s\n", err.Error())
- return
- }
-
- log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries))
- sr.PrettyPrint(0)
-}
+++ /dev/null
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
- "fmt"
- "log"
-
- "github.com/juju2013/goldap"
-)
-
-var (
- LdapServer string = "localhost"
- LdapPort uint16 = 636
- BaseDN string = "dc=enterprise,dc=org"
- Filter string = "(cn=kirkj)"
- Attributes []string = []string{"mail"}
-)
-
-func main() {
- l, err := ldap.DialSSL("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort), nil)
- if err != nil {
- log.Fatalf("ERROR: %s\n", err.String())
- }
- defer l.Close()
- // l.Debug = true
-
- search := ldap.NewSearchRequest(
- BaseDN,
- ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
- Filter,
- Attributes,
- nil)
-
- sr, err := l.Search(search)
- if err != nil {
- log.Fatalf("ERROR: %s\n", err.String())
- return
- }
-
- log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries))
- sr.PrettyPrint(0)
-}
+++ /dev/null
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
- "fmt"
- "log"
-
- "github.com/juju2013/goldap"
-)
-
-var (
- LdapServer string = "localhost"
- LdapPort uint16 = 389
- BaseDN string = "dc=enterprise,dc=org"
- Filter string = "(cn=kirkj)"
- Attributes []string = []string{"mail"}
-)
-
-func main() {
- l, err := ldap.DialTLS("tcp", fmt.Sprintf("%s:%d", LdapServer, LdapPort), nil)
- if err != nil {
- log.Fatalf("ERROR: %s\n", err.Error())
- }
- defer l.Close()
- // l.Debug = true
-
- search := ldap.NewSearchRequest(
- BaseDN,
- ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
- Filter,
- Attributes,
- nil)
-
- sr, err := l.Search(search)
- if err != nil {
- log.Fatalf("ERROR: %s\n", err.Error())
- return
- }
-
- log.Printf("Search: %s -> num of entries = %d\n", search.Filter, len(sr.Entries))
- sr.PrettyPrint(0)
-}
+++ /dev/null
-#
-# See slapd.conf(5) for details on configuration options.
-# This file should NOT be world readable.
-#
-include /private/etc/openldap/schema/core.schema
-include /private/etc/openldap/schema/cosine.schema
-include /private/etc/openldap/schema/inetorgperson.schema
-
-# Define global ACLs to disable default read access.
-
-# Do not enable referrals until AFTER you have a working directory
-# service AND an understanding of referrals.
-#referral ldap://root.openldap.org
-
-pidfile /private/var/db/openldap/run/slapd.pid
-argsfile /private/var/db/openldap/run/slapd.args
-
-# Load dynamic backend modules:
-# modulepath /usr/libexec/openldap
-# moduleload back_bdb.la
-# moduleload back_hdb.la
-# moduleload back_ldap.la
-
-# Sample security restrictions
-# Require integrity protection (prevent hijacking)
-# Require 112-bit (3DES or better) encryption for updates
-# Require 63-bit encryption for simple bind
-# security ssf=1 update_ssf=112 simple_bind=64
-
-# Sample access control policy:
-# Root DSE: allow anyone to read it
-# Subschema (sub)entry DSE: allow anyone to read it
-# Other DSEs:
-# Allow self write access
-# Allow authenticated users read access
-# Allow anonymous users to authenticate
-# Directives needed to implement policy:
-# access to dn.base="" by * read
-# access to dn.base="cn=Subschema" by * read
-# access to *
-# by self write
-# by users read
-# by anonymous auth
-#
-# if no access controls are present, the default policy
-# allows anyone and everyone to read anything but restricts
-# updates to rootdn. (e.g., "access to * by * read")
-#
-# rootdn can always read and write EVERYTHING!
-
-#######################################################################
-# BDB database definitions
-#######################################################################
-
-database bdb
-suffix "dc=enterprise,dc=org"
-rootdn "cn=admin,dc=enterprise,dc=org"
-# Cleartext passwords, especially for the rootdn, should
-# be avoid. See slappasswd(8) and slapd.conf(5) for details.
-# Use of strong authentication encouraged.
-rootpw {SSHA}laO00HsgszhK1O0Z5qR0/i/US69Osfeu
-# The database directory MUST exist prior to running slapd AND
-# should only be accessible by the slapd and slap tools.
-# Mode 700 recommended.
-directory /private/var/db/openldap/openldap-data
-# Indices to maintain
-index objectClass eq
import (
"testing"
- "github.com/johnweldon/asn1-ber"
+ "github.com/gogits/gogs/modules/asn1-ber"
)
type compileTest struct {
package main
import (
- "code.google.com/p/mahonia"
"flag"
"io"
"log"
"os"
+
+ "github.com/gogits/gogs/modules/mahonia"
)
// An iconv workalike using mahonia.