Auth: Keep config in a separate struct in LDAP (#89149)

keep config in a separate struct in LDAP
This commit is contained in:
Mihai Doarna
2024-06-17 15:34:06 +03:00
committed by GitHub
parent 94e6bcd329
commit 32d21356b9
13 changed files with 157 additions and 126 deletions
+2 -3
View File
@@ -7,7 +7,6 @@ import (
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/services/ldap"
"github.com/grafana/grafana/pkg/services/login"
"github.com/grafana/grafana/pkg/setting"
)
// GetConfig gets LDAP config
@@ -54,12 +53,12 @@ type IMultiLDAP interface {
// MultiLDAP is basic struct of LDAP authorization
type MultiLDAP struct {
configs []*ldap.ServerConfig
cfg *setting.Cfg
cfg *ldap.Config
log log.Logger
}
// New creates the new LDAP auth
func New(configs []*ldap.ServerConfig, cfg *setting.Cfg) IMultiLDAP {
func New(configs []*ldap.ServerConfig, cfg *ldap.Config) IMultiLDAP {
return &MultiLDAP{
configs: configs,
cfg: cfg,
+24 -25
View File
@@ -8,7 +8,6 @@ import (
"github.com/grafana/grafana/pkg/services/ldap"
"github.com/grafana/grafana/pkg/services/login"
"github.com/grafana/grafana/pkg/setting"
//TODO(sh0rez): remove once import cycle resolved
_ "github.com/grafana/grafana/pkg/api/response"
@@ -19,7 +18,7 @@ func TestMultiLDAP(t *testing.T) {
t.Run("Should return error for absent config list", func(t *testing.T) {
setup()
multi := New([]*ldap.ServerConfig{}, setting.NewCfg())
multi := New([]*ldap.ServerConfig{}, &ldap.Config{})
_, err := multi.Ping()
require.Error(t, err)
@@ -35,7 +34,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{Host: "10.0.0.1", Port: 361},
}, setting.NewCfg())
}, &ldap.Config{})
statuses, err := multi.Ping()
@@ -53,7 +52,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{Host: "10.0.0.1", Port: 361},
}, setting.NewCfg())
}, &ldap.Config{})
statuses, err := multi.Ping()
@@ -71,7 +70,7 @@ func TestMultiLDAP(t *testing.T) {
t.Run("Should return error for absent config list", func(t *testing.T) {
setup()
multi := New([]*ldap.ServerConfig{}, setting.NewCfg())
multi := New([]*ldap.ServerConfig{}, &ldap.Config{})
_, err := multi.Login(&login.LoginUserQuery{})
require.Error(t, err)
@@ -88,7 +87,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, err := multi.Login(&login.LoginUserQuery{})
@@ -104,7 +103,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, err := multi.Login(&login.LoginUserQuery{})
require.Equal(t, 2, mock.dialCalledTimes)
@@ -125,7 +124,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
result, err := multi.Login(&login.LoginUserQuery{})
require.Equal(t, 1, mock.dialCalledTimes)
@@ -145,7 +144,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, err := multi.Login(&login.LoginUserQuery{})
require.Equal(t, 2, mock.dialCalledTimes)
@@ -164,7 +163,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, err := multi.Login(&login.LoginUserQuery{})
require.Equal(t, 2, mock.dialCalledTimes)
@@ -184,7 +183,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, err := multi.Login(&login.LoginUserQuery{})
require.Equal(t, 2, mock.dialCalledTimes)
@@ -202,7 +201,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, err := multi.Login(&login.LoginUserQuery{})
require.Equal(t, 1, mock.dialCalledTimes)
@@ -219,7 +218,7 @@ func TestMultiLDAP(t *testing.T) {
t.Run("Should return error for absent config list", func(t *testing.T) {
setup()
multi := New([]*ldap.ServerConfig{}, setting.NewCfg())
multi := New([]*ldap.ServerConfig{}, &ldap.Config{})
_, _, err := multi.User("test")
require.Error(t, err)
@@ -236,7 +235,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, _, err := multi.User("test")
@@ -251,7 +250,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, _, err := multi.User("test")
require.Equal(t, 2, mock.dialCalledTimes)
@@ -271,7 +270,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, _, err := multi.User("test")
require.Equal(t, 1, mock.dialCalledTimes)
@@ -298,7 +297,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
user, _, err := multi.User("test")
require.Equal(t, 1, mock.dialCalledTimes)
@@ -319,7 +318,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, _, err := multi.User("test")
require.Equal(t, 2, mock.dialCalledTimes)
@@ -338,7 +337,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, err := multi.Users([]string{"test"})
require.Equal(t, 2, mock.dialCalledTimes)
@@ -349,7 +348,7 @@ func TestMultiLDAP(t *testing.T) {
t.Run("Should return error for absent config list", func(t *testing.T) {
setup()
multi := New([]*ldap.ServerConfig{}, setting.NewCfg())
multi := New([]*ldap.ServerConfig{}, &ldap.Config{})
_, err := multi.Users([]string{"test"})
require.Error(t, err)
@@ -366,7 +365,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, err := multi.Users([]string{"test"})
@@ -381,7 +380,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, err := multi.Users([]string{"test"})
require.Equal(t, 2, mock.dialCalledTimes)
@@ -401,7 +400,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
_, err := multi.Users([]string{"test"})
require.Equal(t, 1, mock.dialCalledTimes)
@@ -434,7 +433,7 @@ func TestMultiLDAP(t *testing.T) {
multi := New([]*ldap.ServerConfig{
{}, {},
}, setting.NewCfg())
}, &ldap.Config{})
users, err := multi.Users([]string{"test"})
require.Equal(t, 2, mock.dialCalledTimes)
@@ -512,7 +511,7 @@ func (mock *mockLDAP) Bind() error {
func setup() *mockLDAP {
mock := &mockLDAP{}
newLDAP = func(config *ldap.ServerConfig, cfg *setting.Cfg) ldap.IServer {
newLDAP = func(config *ldap.ServerConfig, cfg *ldap.Config) ldap.IServer {
return mock
}