Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add Kerberos auth support #702

Open
wants to merge 25 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
1854c5c
add krb auth support
Nov 29, 2021
f2e846d
worked on review comments
chandanjainn Nov 30, 2021
b46e98e
Rename kerberos variables.
chandanjainn Nov 30, 2021
1f85924
Removed leading space
chandanjainn Dec 1, 2021
2fe0bca
unexport initiator states
chandanjainn Dec 6, 2021
d361509
removed the global vars in kerbauth.go
chandanjainn Dec 7, 2021
86e0074
migrated gokrb from v7 to v8.
chandanjainn Dec 8, 2021
eca4758
worked on error message
chandanjainn Dec 9, 2021
c47a35b
worked on error messages.
chandanjainn Dec 13, 2021
27f50f1
updated readme.
chandanjainn Dec 20, 2021
f792281
Merge branch 'master' into kerberos_auth
chandanjainn Jan 19, 2022
ca67c06
Wroked on review comments
chandanjainn Jan 20, 2022
6e619be
fixed the changes for readme.
chandanjainn Jan 20, 2022
d4f52ce
fix: whitespace
Jan 20, 2022
530eb45
worked on review comments
chandanjainn Jan 20, 2022
85c5bb1
fix for unit testing
chandanjainn Jan 20, 2022
04c18be
Merge branch 'master' into kerberos_auth
chandanjainn Jan 24, 2022
8059af5
renamed kerberos config variable
chandanjainn Jan 24, 2022
79d6641
Merge branch 'master' into kerberos_auth
chandanjainn Jan 24, 2022
b4e96e3
nil pointer fix
chandanjainn Jan 25, 2022
729e190
Merge branch 'kerberos_auth' of github.com:chandanjainn/go-mssqldb in…
chandanjainn Jan 25, 2022
dc1a816
removed commented code
chandanjainn Feb 8, 2022
73ae20f
removed unused field
chandanjainn Feb 8, 2022
bf01def
code formatting
chandanjainn Feb 10, 2022
dd22d87
Merge branch 'master' into kerberos_auth
chandanjainn Jun 13, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion kerbauth.go
Expand Up @@ -121,7 +121,7 @@ func (auth *krb5Auth) Free() {
func (auth *krb5Auth) NextBytes(token []byte) ([]byte, error) {
var spnegoToken spnego.SPNEGOToken
if err := spnegoToken.Unmarshal(token); err != nil {
err := fmt.Errorf("unmarshal APRep token failed: %w", err)
err := fmt.Errorf("unmarshal APRep token failed: %v", err)
chandanjainn marked this conversation as resolved.
Show resolved Hide resolved
return []byte{}, err
}
auth.state = initiatorReady
Expand Down
16 changes: 8 additions & 8 deletions msdsn/conn_str.go
Expand Up @@ -203,14 +203,13 @@ func Parse(dsn string) (Config, map[string]string, error) {
var err error
p.EnableKerberos, err = strconv.ParseBool(enablekerberos)
if err != nil {
f := "invalid enablekerberos flag '%v': %v"
return p, params, fmt.Errorf(f, enablekerberos, err.Error())
return p, params, fmt.Errorf("invalid enablekerberos flag '%v': %v", enablekerberos, err.Error())
chandanjainn marked this conversation as resolved.
Show resolved Hide resolved
}
}
if p.EnableKerberos {
missingParam := checkMissingKRBConfig(params)
if missingParam != "" {
return p, params, fmt.Errorf(" %s cannot be empty", missingParam)
return p, params, fmt.Errorf("missing parameter:%s", missingParam)
}

realm, ok := params["realm"]
Expand All @@ -223,7 +222,7 @@ func Parse(dsn string) (Config, map[string]string, error) {
var err error
p.KrbCache, err = setupKerbCache(krbCache)
if err != nil {
return p, params, fmt.Errorf("cannot read kerberos cache file: %v", err)
return p, params, fmt.Errorf("cannot read kerberos cache file: %v", err.Error())
chandanjainn marked this conversation as resolved.
Show resolved Hide resolved
}
}

Expand All @@ -232,7 +231,7 @@ func Parse(dsn string) (Config, map[string]string, error) {
var err error
p.Krb5Conf, err = setupKerbConfig(krb5ConfFile)
if err != nil {
return p, params, fmt.Errorf("cannot read kerberos configuration file: %v", err)
return p, params, fmt.Errorf("cannot read kerberos configuration file: %v", err.Error())
chandanjainn marked this conversation as resolved.
Show resolved Hide resolved
}

}
Expand All @@ -242,8 +241,7 @@ func Parse(dsn string) (Config, map[string]string, error) {
var err error
p.Initkrbwithkeytab, err = strconv.ParseBool(initkrbwithkeytab)
if err != nil {
f := "invalid initkrbwithkeytab flag '%v': %v"
return p, params, fmt.Errorf(f, initkrbwithkeytab, err.Error())
return p, params, fmt.Errorf("invalid initkrbwithkeytab flag '%v': %v", initkrbwithkeytab, err.Error())
chandanjainn marked this conversation as resolved.
Show resolved Hide resolved
}
}

Expand All @@ -252,7 +250,7 @@ func Parse(dsn string) (Config, map[string]string, error) {
var err error
p.KrbKeytab, err = setupKerbKeytab(keytabfile)
if err != nil {
return p, params, fmt.Errorf("cannot read kerberos keytab file: %v", err)
return p, params, fmt.Errorf("cannot read kerberos keytab file: %v", err.Error())
chandanjainn marked this conversation as resolved.
Show resolved Hide resolved
}
}
}
Expand Down Expand Up @@ -410,9 +408,11 @@ func checkMissingKRBConfig(c map[string]string) (missingParam string) {
if c["initkrbwithkeytab"] == "true" {
if c["keytabfile"] == "" {
missingParam = "keytabfile"
return
}
if c["realm"] == "" {
missingParam = "realm"
return
}
} else if c["krbcache"] == "" {
missingParam = "krbcache"
Expand Down