repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

pico / pkg / send / auth
Antonio Mika  ยท  2025-03-12

auth.go

 1package auth
 2
 3import (
 4	"github.com/picosh/pico/pkg/pssh"
 5	"github.com/picosh/pico/pkg/send/utils"
 6)
 7
 8func Middleware(writeHandler utils.CopyFromClientHandler) pssh.SSHServerMiddleware {
 9	return func(sshHandler pssh.SSHServerHandler) pssh.SSHServerHandler {
10		return func(session *pssh.SSHServerConnSession) error {
11			defer func() {
12				if r := recover(); r != nil {
13					writeHandler.GetLogger(session).Error("error running auth middleware", "err", r)
14				}
15			}()
16
17			err := writeHandler.Validate(session)
18			if err != nil {
19				utils.ErrorHandler(session, err)
20				return err
21			}
22
23			return sshHandler(session)
24		}
25	}
26}