Style fixes from code review.

This commit is contained in:
AJ Henderson 2019-05-01 12:45:21 -04:00
parent 142ee7d313
commit 28ecab90f2
3 changed files with 34 additions and 38 deletions

@ -36,9 +36,9 @@ func (credWrapper CredentialHelperWrapper) FillCreds() error {
if creds == nil || len(creds) < 1 { if creds == nil || len(creds) < 1 {
errmsg := fmt.Sprintf("Git credentials for %s not found", credWrapper.Url) errmsg := fmt.Sprintf("Git credentials for %s not found", credWrapper.Url)
if err != nil { if err != nil {
errmsg = errmsg + ":\n" + err.Error() errmsg = fmt.Sprintf("%s:\n%s", errmsg, err.Error())
} else { } else {
errmsg = errmsg + "." errmsg = fmt.Sprintf("%s.", errmsg)
} }
err = errors.New(errmsg) err = errors.New(errmsg)
} }
@ -118,8 +118,7 @@ func (ctxt *CredentialHelperContext) GetCredentialHelper(helper CredentialHelper
} }
if helper != nil { if helper != nil {
result := CredentialHelperWrapper{CredentialHelper: helper, Input: input, Url: u} return CredentialHelperWrapper{CredentialHelper: helper, Input: input, Url: u}
return result
} }
helpers := make([]CredentialHelper, 0, 4) helpers := make([]CredentialHelper, 0, 4)
@ -135,8 +134,7 @@ func (ctxt *CredentialHelperContext) GetCredentialHelper(helper CredentialHelper
helpers = append(helpers, ctxt.askpassCredHelper) helpers = append(helpers, ctxt.askpassCredHelper)
} }
} }
result := CredentialHelperWrapper{CredentialHelper: NewCredentialHelpers(append(helpers, ctxt.commandCredHelper)), Input: input, Url: u} return CredentialHelperWrapper{CredentialHelper: NewCredentialHelpers(append(helpers, ctxt.commandCredHelper)), Input: input, Url: u}
return result
} }
// AskPassCredentialHelper implements the CredentialHelper type for GIT_ASKPASS // AskPassCredentialHelper implements the CredentialHelper type for GIT_ASKPASS

@ -136,19 +136,16 @@ func (c *Client) getCreds(remote string, access Access, req *http.Request) (cred
if access.Mode() != NTLMAccess { if access.Mode() != NTLMAccess {
if requestHasAuth(req) || access.Mode() == NoneAccess { if requestHasAuth(req) || access.Mode() == NoneAccess {
helper := creds.CredentialHelperWrapper{CredentialHelper: creds.NullCreds, Input: nil, Url: nil, Creds: nil} return creds.CredentialHelperWrapper{CredentialHelper: creds.NullCreds, Input: nil, Url: nil, Creds: nil}, nil
return helper, nil
} }
credsURL, err := getCredURLForAPI(ef, operation, remote, apiEndpoint, req) credsURL, err := getCredURLForAPI(ef, operation, remote, apiEndpoint, req)
if err != nil { if err != nil {
helper := creds.CredentialHelperWrapper{CredentialHelper: creds.NullCreds, Input: nil, Url: nil, Creds: nil} return creds.CredentialHelperWrapper{CredentialHelper: creds.NullCreds, Input: nil, Url: nil, Creds: nil}, errors.Wrap(err, "creds")
return helper, errors.Wrap(err, "creds")
} }
if credsURL == nil { if credsURL == nil {
helper := creds.CredentialHelperWrapper{CredentialHelper: creds.NullCreds, Input: nil, Url: nil, Creds: nil} return creds.CredentialHelperWrapper{CredentialHelper: creds.NullCreds, Input: nil, Url: nil, Creds: nil}, nil
return helper, nil
} }
credWrapper := c.getGitCredsWrapper(ef, req, credsURL) credWrapper := c.getGitCredsWrapper(ef, req, credsURL)
@ -164,8 +161,7 @@ func (c *Client) getCreds(remote string, access Access, req *http.Request) (cred
credsURL, err := url.Parse(apiEndpoint.Url) credsURL, err := url.Parse(apiEndpoint.Url)
if err != nil { if err != nil {
helper := creds.CredentialHelperWrapper{CredentialHelper: creds.NullCreds, Input: nil, Url: nil, Creds: nil} return creds.CredentialHelperWrapper{CredentialHelper: creds.NullCreds, Input: nil, Url: nil, Creds: nil}, errors.Wrap(err, "creds")
return helper, errors.Wrap(err, "creds")
} }
// NTLM uses creds to create the session // NTLM uses creds to create the session
@ -174,8 +170,7 @@ func (c *Client) getCreds(remote string, access Access, req *http.Request) (cred
} }
func (c *Client) getGitCredsWrapper(ef EndpointFinder, req *http.Request, u *url.URL) creds.CredentialHelperWrapper { func (c *Client) getGitCredsWrapper(ef EndpointFinder, req *http.Request, u *url.URL) creds.CredentialHelperWrapper {
credWrapper := c.credContext.GetCredentialHelper(c.Credentials, u) return c.credContext.GetCredentialHelper(c.Credentials, u)
return credWrapper
} }
func getCredURLForAPI(ef EndpointFinder, operation, remote string, apiEndpoint lfshttp.Endpoint, req *http.Request) (*url.URL, error) { func getCredURLForAPI(ef EndpointFinder, operation, remote string, apiEndpoint lfshttp.Endpoint, req *http.Request) (*url.URL, error) {

@ -39,31 +39,34 @@ func (c *Client) ntlmReAuth(req *http.Request, credWrapper creds.CredentialHelpe
return res, err return res, err
} }
// If SSPI succeeded, then we can move on.
if res.StatusCode < 300 && res.StatusCode > 199 {
return res, nil
}
// If SSPI failed, then we need to try the normal. // If SSPI failed, then we need to try the normal.
if res.StatusCode >= 300 || res.StatusCode < 199 { credWrapper.FillCreds()
credWrapper.FillCreds() ntmlCreds, err := ntlmGetCredentials(credWrapper.Creds)
ntmlCreds, err := ntlmGetCredentials(credWrapper.Creds) if err != nil {
if err != nil { return nil, err
return nil, err }
}
res, err := c.ntlmAuthenticateRequest(req, ntmlCreds) res, err := c.ntlmAuthenticateRequest(req, ntmlCreds)
if err != nil && !errors.IsAuthError(err) { if err != nil && !errors.IsAuthError(err) {
return res, err return res, err
} }
switch res.StatusCode { switch res.StatusCode {
case 401: case 401:
credWrapper.CredentialHelper.Reject(credWrapper.Creds) credWrapper.CredentialHelper.Reject(credWrapper.Creds)
if retry { if retry {
return c.ntlmReAuth(req, credWrapper, false) return c.ntlmReAuth(req, credWrapper, false)
} }
case 403: case 403:
credWrapper.CredentialHelper.Reject(credWrapper.Creds) credWrapper.CredentialHelper.Reject(credWrapper.Creds)
default: default:
if res.StatusCode < 300 && res.StatusCode > 199 { if res.StatusCode < 300 && res.StatusCode > 199 {
credWrapper.CredentialHelper.Approve(credWrapper.Creds) credWrapper.CredentialHelper.Approve(credWrapper.Creds)
}
} }
} }