本文整理汇总了Golang中github.com/go-ldap/ldap.Dial函数的典型用法代码示例。如果您正苦于以下问题:Golang Dial函数的具体用法?Golang Dial怎么用?Golang Dial使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Dial函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: initLDAPConnector
func initLDAPConnector() string {
var (
ckl = int(0)
err error
l *ldap.Conn
)
for {
if ckl > 9 {
log.Printf("LDAP Init SRV ***** Error connect to all LDAP servers...")
return "error"
}
ldap_count++
if ldap_count > len(rconf.LDAP_URL)-1 {
ldap_count = 0
}
log.Printf("LDAP Init SRV ***** Trying connect to server %d of %d: %s", ldap_count+1, len(rconf.LDAP_URL), rconf.LDAP_URL[ldap_count][0])
l, err = ldap.Dial("tcp", rconf.LDAP_URL[ldap_count][0])
if err != nil {
continue
}
defer l.Close()
break
ckl++
}
return rconf.LDAP_URL[ldap_count][0]
}
开发者ID:BestianRU,项目名称:SABookServices,代码行数:32,代码来源:WebLDAPBook.go
示例2: NewLDAPClient
func NewLDAPClient(ldapUri, bindDn, bindPass string, searchBase ...string) (ad *LDAPClient, err error) {
protoHostPort := strings.Split(ldapUri, "://")
if len(protoHostPort) != 2 {
err = fmt.Errorf("Invalid LDAP URI: %s", ldapUri)
return
}
ad = &LDAPClient{URI: ldapUri}
if protoHostPort[0] == "ldaps" {
ad.Conn, err = ldap.DialTLS("tcp", protoHostPort[1], &tls.Config{InsecureSkipVerify: true})
} else {
//no ssl port 389
ad.Conn, err = ldap.Dial("tcp", protoHostPort[1])
}
if err != nil {
return
}
if len(searchBase) > 0 {
ad.DefaultSearchBase = searchBase[0]
}
err = ad.Bind(bindDn, bindPass)
return
}
开发者ID:euforia,项目名称:ldapclients-go,代码行数:25,代码来源:basicldap.go
示例3: InitS
func (_s *LDAP) InitS(rLog SBMSystem.LogFile, user, password, server string) int {
var err error
_s.CS = -1
rLog.LogDbg(2, "LDAP Init SRV ***** Trying connect to server ", server, " with login ", user)
_s.D, err = ldap.Dial("tcp", server)
if err != nil {
rLog.LogDbg(0, "LDAP::Dial() to server ", server, " error: ", err)
return -1
}
//L.Debug()
err = _s.D.Bind(user, password)
if err != nil {
rLog.LogDbg(1, "LDAP::Bind() to server ", server, " with login ", user, " error: ", err)
return -1
}
rLog.LogDbg(2, "LDAP Init SRV ***** Success! Connected to server ", server, " with login ", user)
_s.CS = 0
return 0
}
开发者ID:BestianRU,项目名称:SABModules,代码行数:26,代码来源:LDAP.go
示例4: Dial
func (a *ldapAuther) Dial() error {
var err error
var certPool *x509.CertPool
if a.server.RootCACert != "" {
certPool := x509.NewCertPool()
for _, caCertFile := range strings.Split(a.server.RootCACert, " ") {
if pem, err := ioutil.ReadFile(caCertFile); err != nil {
return err
} else {
if !certPool.AppendCertsFromPEM(pem) {
return errors.New("Failed to append CA certificate " + caCertFile)
}
}
}
}
for _, host := range strings.Split(a.server.Host, " ") {
address := fmt.Sprintf("%s:%d", host, a.server.Port)
if a.server.UseSSL {
tlsCfg := &tls.Config{
InsecureSkipVerify: a.server.SkipVerifySSL,
ServerName: host,
RootCAs: certPool,
}
a.conn, err = ldap.DialTLS("tcp", address, tlsCfg)
} else {
a.conn, err = ldap.Dial("tcp", address)
}
if err == nil {
return nil
}
}
return err
}
开发者ID:Robin7Ma,项目名称:grafana,代码行数:34,代码来源:ldap.go
示例5: Connect
//Connect returns an open connection to an Active Directory server specified by the given config
func (c *Config) Connect() (*ldap.Conn, error) {
if c.TLSConfig == nil {
c.TLSConfig = &tls.Config{
ServerName: c.Server,
}
}
switch c.Security {
case SecurityNone:
conn, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", c.Server, c.Port))
if err != nil {
if c.Debug {
log.Printf("DEBUG: LDAP Error %v\n", err)
}
return nil, err
}
return conn, nil
case SecurityTLS:
conn, err := ldap.DialTLS("tcp", fmt.Sprintf("%s:%d", c.Server, c.Port), c.TLSConfig)
if err != nil {
if c.Debug {
log.Printf("DEBUG: LDAP Error %v\n", err)
}
return nil, err
}
return conn, nil
case SecurityStartTLS:
conn, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", c.Server, c.Port))
if err != nil {
if c.Debug {
log.Printf("DEBUG: LDAP Error %v\n", err)
}
return nil, err
}
err = conn.StartTLS(c.TLSConfig)
if err != nil {
if c.Debug {
log.Printf("DEBUG: LDAP Error %v\n", err)
}
return nil, err
}
return conn, nil
default:
return nil, ConfigError("Invalid Security setting")
}
}
开发者ID:korylprince,项目名称:go-ad-auth,代码行数:47,代码来源:auth.go
示例6: Example_userAuthentication
// Example User Authentication shows how a typical application can verify a login attempt
func Example_userAuthentication() {
// The username and password we want to check
username := "someuser"
password := "userpassword"
bindusername := "readonly"
bindpassword := "password"
l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", "ldap.example.com", 389))
if err != nil {
log.Fatal(err)
}
defer l.Close()
// Reconnect with TLS
err = l.StartTLS(&tls.Config{InsecureSkipVerify: true})
if err != nil {
log.Fatal(err)
}
// First bind with a read only user
err = l.Bind(bindusername, bindpassword)
if err != nil {
log.Fatal(err)
}
// Search for the given username
searchRequest := ldap.NewSearchRequest(
"dc=example,dc=com",
ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
fmt.Sprintf("(&(objectClass=organizationalPerson)&(uid=%s))", username),
[]string{"dn"},
nil,
)
sr, err := l.Search(searchRequest)
if err != nil {
log.Fatal(err)
}
if len(sr.Entries) != 1 {
log.Fatal("User does not exist or too many entries returned")
}
userdn := sr.Entries[0].DN
// Bind as the user to verify their password
err = l.Bind(userdn, password)
if err != nil {
log.Fatal(err)
}
// Rebind as the read only user for any futher queries
err = l.Bind(bindusername, bindpassword)
if err != nil {
log.Fatal(err)
}
}
开发者ID:mbrukman,项目名称:grafana,代码行数:59,代码来源:example_test.go
示例7: Dial
func (a *ldapAuther) Dial() error {
address := fmt.Sprintf("%s:%d", a.server.Host, a.server.Port)
var err error
if a.server.UseSSL {
a.conn, err = ldap.DialTLS("tcp", address, nil)
} else {
a.conn, err = ldap.Dial("tcp", address)
}
return err
}
开发者ID:johnulist,项目名称:grafana,代码行数:11,代码来源:ldap.go
示例8: ExampleConn_Bind
// ExampleConn_Bind demonstrats how to bind a connection to an ldap user
// allowing access to restricted attrabutes that user has access to
func ExampleConn_Bind() {
l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", "ldap.example.com", 389))
if err != nil {
log.Fatal(err)
}
defer l.Close()
err = l.Bind("cn=read-only-admin,dc=example,dc=com", "password")
if err != nil {
log.Fatal(err)
}
}
开发者ID:mbrukman,项目名称:grafana,代码行数:14,代码来源:example_test.go
示例9: ConnectAndBind
func (lc *LDAPClient) ConnectAndBind() (err error) {
if strings.HasPrefix(lc.URI, "ldaps") {
lc.LdapConn, err = ldap.DialTLS("tcp", lc.hostPort, &tls.Config{InsecureSkipVerify: true})
} else {
//no ssl port 389
lc.LdapConn, err = ldap.Dial("tcp", lc.hostPort)
}
if err != nil {
return
}
err = lc.LdapConn.Bind(lc.UserBindDN, lc.UserBindPass)
return
}
开发者ID:vindalu,项目名称:vindalu,代码行数:13,代码来源:ldapclient.go
示例10: DialLDAP
func (c *ConfigEntry) DialLDAP() (*ldap.Conn, error) {
u, err := url.Parse(c.Url)
if err != nil {
return nil, err
}
host, port, err := net.SplitHostPort(u.Host)
if err != nil {
host = u.Host
}
var conn *ldap.Conn
var tlsConfig *tls.Config
switch u.Scheme {
case "ldap":
if port == "" {
port = "389"
}
conn, err = ldap.Dial("tcp", host+":"+port)
if err != nil {
break
}
if conn == nil {
err = fmt.Errorf("empty connection after dialing")
break
}
if c.StartTLS {
tlsConfig, err = c.GetTLSConfig(host)
if err != nil {
break
}
err = conn.StartTLS(tlsConfig)
}
case "ldaps":
if port == "" {
port = "636"
}
tlsConfig, err = c.GetTLSConfig(host)
if err != nil {
break
}
conn, err = ldap.DialTLS("tcp", host+":"+port, tlsConfig)
default:
return nil, fmt.Errorf("invalid LDAP scheme")
}
if err != nil {
return nil, fmt.Errorf("cannot connect to LDAP: %v", err)
}
return conn, nil
}
开发者ID:naunga,项目名称:vault,代码行数:51,代码来源:path_config.go
示例11: ExampleConn_Compare
// ExampleConn_Compare demonstrates how to comapre an attribute with a value
func ExampleConn_Compare() {
l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", "ldap.example.com", 389))
if err != nil {
log.Fatal(err)
}
defer l.Close()
matched, err := l.Compare("cn=user,dc=example,dc=com", "uid", "someuserid")
if err != nil {
log.Fatal(err)
}
fmt.Println(matched)
}
开发者ID:mbrukman,项目名称:grafana,代码行数:15,代码来源:example_test.go
示例12: ExampleConn_StartTLS
// ExampleStartTLS demonstrates how to start a TLS connection
func ExampleConn_StartTLS() {
l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", "ldap.example.com", 389))
if err != nil {
log.Fatal(err)
}
defer l.Close()
// Reconnect with TLS
err = l.StartTLS(&tls.Config{InsecureSkipVerify: true})
if err != nil {
log.Fatal(err)
}
// Opertations via l are now encrypted
}
开发者ID:mbrukman,项目名称:grafana,代码行数:16,代码来源:example_test.go
示例13: Dial
func (a *ldapAuther) Dial() error {
address := fmt.Sprintf("%s:%d", a.server.Host, a.server.Port)
var err error
if a.server.UseSSL {
tlsCfg := &tls.Config{
InsecureSkipVerify: a.server.SkipVerifySSL,
ServerName: a.server.Host,
}
a.conn, err = ldap.DialTLS("tcp", address, tlsCfg)
} else {
a.conn, err = ldap.Dial("tcp", address)
}
return err
}
开发者ID:AlexLov,项目名称:grafana,代码行数:15,代码来源:ldap.go
示例14: ldapConnection
func (la *LDAPAuth) ldapConnection() (*ldap.Conn, error) {
glog.V(2).Infof("Dial: starting...%s", la.config.Addr)
l, err := ldap.Dial("tcp", fmt.Sprintf("%s", la.config.Addr))
if err != nil {
return nil, err
}
if la.config.StartTLS {
glog.V(2).Infof("StartTLS...")
err = l.StartTLS(&tls.Config{InsecureSkipVerify: true})
if err != nil {
return nil, err
}
}
return l, nil
}
开发者ID:frank12268,项目名称:docker_auth,代码行数:15,代码来源:ldap_auth.go
示例15: login
func login(user string, password string) (*ldap.Conn, error) {
l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", ldapServer, ldapPort))
if err != nil {
return nil, err
}
l.Debug = debug
bindRequest := ldap.NewSimpleBindRequest(user, password, nil)
_, err = l.SimpleBind(bindRequest)
if err != nil {
return nil, err
}
return l, nil
}
开发者ID:kakamessi99,项目名称:shipyard,代码行数:15,代码来源:passwdmodify.go
示例16: connect
func (sua *LdapAuthConfig) connect() (*ldap.Conn, error) {
if sua.Tls {
tlsConfig := &tls.Config{
ServerName: sua.Host,
}
if sua.Insecure {
tlsConfig = &tls.Config{
InsecureSkipVerify: true,
}
}
l, err := ldap.DialTLS("tcp", fmt.Sprintf("%s:%d", sua.Host, sua.Port), tlsConfig)
return l, err
} else {
l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", sua.Host, sua.Port))
return l, err
}
}
开发者ID:brandnetworks,项目名称:docker_auth,代码行数:17,代码来源:ldap_auth.go
示例17: ExampleConn_Modify
func ExampleConn_Modify() {
l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", "ldap.example.com", 389))
if err != nil {
log.Fatal(err)
}
defer l.Close()
// Add a description, and replace the mail attributes
modify := ldap.NewModifyRequest("cn=user,dc=example,dc=com")
modify.Add("description", []string{"An example user"})
modify.Replace("mail", []string{"[email protected]"})
err = l.Modify(modify)
if err != nil {
log.Fatal(err)
}
}
开发者ID:mbrukman,项目名称:grafana,代码行数:17,代码来源:example_test.go
示例18: Connect
// Connect returns an established LDAP connection, or an error if the connection could not
// be made (or successfully upgraded to TLS). If no error is returned, the caller is responsible for
// closing the connection
func (l *LDAPClientConfig) Connect() (*ldap.Conn, error) {
tlsConfig := l.TLSConfig
// Ensure tlsConfig specifies the server we're connecting to
if tlsConfig != nil && !tlsConfig.InsecureSkipVerify && len(tlsConfig.ServerName) == 0 {
// Add to a copy of the tlsConfig to avoid mutating the original
c := *tlsConfig
if host, _, err := net.SplitHostPort(l.Host); err == nil {
c.ServerName = host
} else {
c.ServerName = l.Host
}
tlsConfig = &c
}
switch l.Scheme {
case SchemeLDAP:
con, err := ldap.Dial("tcp", l.Host)
if err != nil {
return nil, err
}
// If an insecure connection is desired, we're done
if l.Insecure {
return con, nil
}
// Attempt to upgrade to TLS
if err := con.StartTLS(tlsConfig); err != nil {
// We're returning an error on a successfully opened connection
// We are responsible for closing the open connection
con.Close()
return nil, err
}
return con, nil
case SchemeLDAPS:
return ldap.DialTLS("tcp", l.Host, tlsConfig)
default:
return nil, fmt.Errorf("unsupported scheme %q", l.Scheme)
}
}
开发者ID:urashidmalik,项目名称:origin,代码行数:47,代码来源:client.go
示例19: ExampleConn_PasswordModify_admin
func ExampleConn_PasswordModify_admin() {
l, err := ldap.Dial("tcp", fmt.Sprintf("%s:%d", "ldap.example.com", 389))
if err != nil {
log.Fatal(err)
}
defer l.Close()
err = l.Bind("cn=admin,dc=example,dc=com", "password")
if err != nil {
log.Fatal(err)
}
passwordModifyRequest := ldap.NewPasswordModifyRequest("cn=user,dc=example,dc=com", "", "NewPassword")
_, err = l.PasswordModify(passwordModifyRequest)
if err != nil {
log.Fatalf("Password could not be changed: %s", err.Error())
}
}
开发者ID:mbrukman,项目名称:grafana,代码行数:19,代码来源:example_test.go
示例20: Init
func (_s *LDAP) Init(conf SBMSystem.ReadJSONConfig, rLog SBMSystem.LogFile) int {
var (
attemptCounter = int(0)
err error
)
_s.CS = -1
for {
if attemptCounter > len(conf.Conf.LDAP_URL)*2 {
rLog.LogDbg(0, "LDAP Init SRV ***** Error connect to all LDAP servers !!!")
return -1
}
if LDAPCounter > len(conf.Conf.LDAP_URL)-1 {
LDAPCounter = 0
}
rLog.LogDbg(2, "LDAP Init SRV ***** Trying connect to server ", LDAPCounter+1, " of ", len(conf.Conf.LDAP_URL), ": ", conf.Conf.LDAP_URL[LDAPCounter][0])
_s.D, err = ldap.Dial("tcp", conf.Conf.LDAP_URL[LDAPCounter][0])
if err != nil {
LDAPCounter++
attemptCounter++
continue
}
rLog.LogDbg(2, "LDAP Init SRV ***** Success! Connected to server ", LDAPCounter+1, " of ", len(conf.Conf.LDAP_URL), ": ", conf.Conf.LDAP_URL[LDAPCounter][0])
LDAPCounter++
break
}
//_s.D.Debug()
err = _s.D.Bind(conf.Conf.LDAP_URL[0][1], conf.Conf.LDAP_URL[0][2])
if err != nil {
rLog.LogDbg(0, "LDAP::Bind() to server ", conf.Conf.LDAP_URL[LDAPCounter][0], " with login ", conf.Conf.LDAP_URL[0][1], " error: ", err)
return -1
}
_s.CS = 0
return 0
}
开发者ID:BestianRU,项目名称:SABModules,代码行数:42,代码来源:LDAP.go
注:本文中的github.com/go-ldap/ldap.Dial函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论