X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5763409818cd2ab68c0f59b6a97d0c3df090907f..2ab371465ac93bdf83d3fc423e361c50c54855d8:/lib/controller/localdb/login_pam.go diff --git a/lib/controller/localdb/login_pam.go b/lib/controller/localdb/login_pam.go index 538e3118ed..237f900a83 100644 --- a/lib/controller/localdb/login_pam.go +++ b/lib/controller/localdb/login_pam.go @@ -20,12 +20,12 @@ import ( ) type pamLoginController struct { - Cluster *arvados.Cluster - RailsProxy *railsProxy + Cluster *arvados.Cluster + Parent *Conn } func (ctrl *pamLoginController) Logout(ctx context.Context, opts arvados.LogoutOptions) (arvados.LogoutResponse, error) { - return noopLogout(ctrl.Cluster, opts) + return logout(ctx, ctrl.Cluster, opts) } func (ctrl *pamLoginController) Login(ctx context.Context, opts arvados.LoginOptions) (arvados.LoginResponse, error) { @@ -35,7 +35,7 @@ func (ctrl *pamLoginController) Login(ctx context.Context, opts arvados.LoginOpt func (ctrl *pamLoginController) UserAuthenticate(ctx context.Context, opts arvados.UserAuthenticateOptions) (arvados.APIClientAuthorization, error) { errorMessage := "" sentPassword := false - tx, err := pam.StartFunc(ctrl.Cluster.Login.PAMService, opts.Username, func(style pam.Style, message string) (string, error) { + tx, err := pam.StartFunc(ctrl.Cluster.Login.PAM.Service, opts.Username, func(style pam.Style, message string) (string, error) { ctxlog.FromContext(ctx).Debugf("pam conversation: style=%v message=%q", style, message) switch style { case pam.ErrorMsg: @@ -80,14 +80,14 @@ func (ctrl *pamLoginController) UserAuthenticate(ctx context.Context, opts arvad return arvados.APIClientAuthorization{}, err } email := user - if domain := ctrl.Cluster.Login.PAMDefaultEmailDomain; domain != "" && !strings.Contains(email, "@") { + if domain := ctrl.Cluster.Login.PAM.DefaultEmailDomain; domain != "" && !strings.Contains(email, "@") { email = email + "@" + domain } ctxlog.FromContext(ctx).WithFields(logrus.Fields{ "user": user, "email": email, }).Debug("pam authentication succeeded") - return createAPIClientAuthorization(ctx, ctrl.RailsProxy, ctrl.Cluster.SystemRootToken, rpc.UserSessionAuthInfo{ + return ctrl.Parent.CreateAPIClientAuthorization(ctx, ctrl.Cluster.SystemRootToken, rpc.UserSessionAuthInfo{ Username: user, Email: email, })