Merge pull request #54 from kanzihuang/fix-ldap-login

fix: LDAP login
This commit is contained in:
may-fly
2023-08-26 12:37:29 +08:00
committed by GitHub
2 changed files with 7 additions and 4 deletions

View File

@@ -3,6 +3,9 @@ package api
import (
"crypto/tls"
"fmt"
"github.com/go-ldap/ldap/v3"
"github.com/pkg/errors"
"gorm.io/gorm"
"mayfly-go/internal/auth/api/form"
msgapp "mayfly-go/internal/msg/application"
sysapp "mayfly-go/internal/sys/application"
@@ -16,10 +19,6 @@ import (
"strconv"
"strings"
"time"
"github.com/go-ldap/ldap/v3"
"github.com/pkg/errors"
"gorm.io/gorm"
)
type LdapLogin struct {
@@ -117,6 +116,9 @@ type UserInfo struct {
// Authenticate 通过 LDAP 验证用户名密码
func Authenticate(username, password string) (*UserInfo, error) {
ldapConf := sysapp.GetConfigApp().GetConfig(sysentity.ConfigKeyLdapLogin).ToLdapLogin()
if !ldapConf.Enable {
return nil, errors.Errorf("未启用 LDAP 登录")
}
conn, err := Connect(ldapConf)
if err != nil {
return nil, errors.Errorf("connect: %v", err)

View File

@@ -135,6 +135,7 @@ func (c *Config) ToLdapLogin() *ConfigLdapLogin {
ll := new(ConfigLdapLogin)
ll.Enable = c.ConvBool(jm["enable"], false)
ll.Host = jm["host"]
ll.Port = jm["port"]
ll.SkipTLSVerify = c.ConvBool(jm["skipTLSVerify"], true)
ll.SecurityProtocol = jm["securityProtocol"]
ll.BindDN = stringx.Trim(jm["bindDN"])