forked from mirrors/forgejo
Linux PAM reports "Authentication Failure"
OpenPAM reports "authentication error"
This resulted in forgejo reporting error 500 on FreeBSD when pam
authentication failed.
Add a sentinel error to make this portable: ErrInvalidCredentials
Signed-off-by: Baptiste Daroussin <bapt@FreeBSD.org>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11296
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Baptiste Daroussin <bapt@FreeBSD.org>
Co-committed-by: Baptiste Daroussin <bapt@FreeBSD.org>
(cherry picked from commit 9762f9ea20)
26 lines
696 B
Go
26 lines
696 B
Go
// Copyright 2014 The Gogs Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
//go:build !pam
|
|
|
|
package pam
|
|
|
|
import (
|
|
"errors"
|
|
)
|
|
|
|
// ErrInvalidCredentials is returned when PAM reports an authentication
|
|
// or account error (wrong password, unknown user, expired account, etc.).
|
|
var ErrInvalidCredentials = errors.New("invalid PAM credentials")
|
|
|
|
// Supported is false when built without PAM
|
|
var Supported = false
|
|
|
|
// Auth not supported lack of pam tag
|
|
func Auth(serviceName, userName, passwd string) (string, error) {
|
|
// bypass the lint on callers: SA4023: this comparison is always true (staticcheck)
|
|
if !Supported {
|
|
return "", errors.New("PAM not supported")
|
|
}
|
|
return "", nil
|
|
}
|