-
-
Notifications
You must be signed in to change notification settings - Fork 94
/
Copy pathjaas_test.go
112 lines (101 loc) · 2.8 KB
/
jaas_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
package config
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
)
func TestExtractsJaasCredentials(t *testing.T) {
jaas := `
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="alice"
password="veyaiThai5que0ieb5le";
};
`
credentials, err := NewJaasCredentials(jaas)
a := assert.New(t)
a.Nil(err)
a.Equal("alice", credentials.Username)
a.Equal("veyaiThai5que0ieb5le", credentials.Password)
}
func TestExtractsJaasCredentialsFromFile(t *testing.T) {
jaas := `
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="alice"
password="veyaiThai5que0ieb5le";
};
`
tmpFile, err := os.CreateTemp("", "kafka-proxy-jaas-test")
assert.Nil(t, err)
defer os.Remove(tmpFile.Name())
defer tmpFile.Close()
_, err = tmpFile.WriteString(jaas)
assert.Nil(t, err)
credentials, err := NewJaasCredentialFromFile(tmpFile.Name())
a := assert.New(t)
a.Nil(err)
a.Equal("alice", credentials.Username)
a.Equal("veyaiThai5que0ieb5le", credentials.Password)
}
func TestExtractsJaasWithBlankCredentials(t *testing.T) {
jaas := `
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username = "alice"
password = "veyaiThai5que0ieb5le";
};
`
credentials, err := NewJaasCredentials(jaas)
a := assert.New(t)
a.Nil(err)
a.Equal("alice", credentials.Username)
a.Equal("veyaiThai5que0ieb5le", credentials.Password)
}
func TestJaasPasswordMissingError(t *testing.T) {
jaas := `
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username = "alice"
};
`
_, err := NewJaasCredentials(jaas)
a := assert.New(t)
a.EqualError(err, "cannot retrieve jaas password: no entry was found")
}
func TestJaasUsernameMissingError(t *testing.T) {
jaas := `
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
password="veyaiThai5que0ieb5le";
};
`
_, err := NewJaasCredentials(jaas)
a := assert.New(t)
a.EqualError(err, "cannot retrieve jaas username: no entry was found")
}
func TestJaas2UsersMultiLineError(t *testing.T) {
jaas := `
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username = "alice"
username = "alice2"
password="veyaiThai5que0ieb5le";
};
`
_, err := NewJaasCredentials(jaas)
a := assert.New(t)
a.EqualError(err, "cannot retrieve jaas username: multiple entries were found")
}
func TestJaas2UsersOneLineError(t *testing.T) {
jaas := `
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username = "alice" username = "alice2"
password="veyaiThai5que0ieb5le";
};
`
_, err := NewJaasCredentials(jaas)
a := assert.New(t)
a.EqualError(err, "cannot retrieve jaas username: multiple entries were found")
}