49 lines
760 B
Go
49 lines
760 B
Go
![]() |
package ldap
|
|||
|
|
|||
|
import (
|
|||
|
"crypto/tls"
|
|||
|
"ferry/pkg/logger"
|
|||
|
"fmt"
|
|||
|
"time"
|
|||
|
|
|||
|
"github.com/spf13/viper"
|
|||
|
|
|||
|
"github.com/go-ldap/ldap/v3"
|
|||
|
)
|
|||
|
|
|||
|
/*
|
|||
|
@Author : lanyulei
|
|||
|
*/
|
|||
|
|
|||
|
type Connection struct {
|
|||
|
Conn *ldap.Conn
|
|||
|
}
|
|||
|
|
|||
|
// ldap连接
|
|||
|
func (c *Connection) ldapConnection() (err error) {
|
|||
|
var ldapConn = fmt.Sprintf("%v:%v", viper.GetString("settings.ldap.host"), viper.GetString("settings.ldap.port"))
|
|||
|
|
|||
|
if viper.GetInt("settings.ldap.port") == 636 {
|
|||
|
c.Conn, err = ldap.DialTLS(
|
|||
|
"tcp",
|
|||
|
ldapConn,
|
|||
|
&tls.Config{InsecureSkipVerify: true},
|
|||
|
)
|
|||
|
} else {
|
|||
|
c.Conn, err = ldap.Dial(
|
|||
|
"tcp",
|
|||
|
ldapConn,
|
|||
|
)
|
|||
|
}
|
|||
|
|
|||
|
if err != nil {
|
|||
|
logger.Errorf("无法连接到ldap服务器,%v", err)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
//设置超时时间
|
|||
|
c.Conn.SetTimeout(5 * time.Second)
|
|||
|
|
|||
|
return
|
|||
|
}
|