mcp-framework/bootstrap/login.go

31 lines
845 B
Go
Raw Normal View History

package bootstrap
import (
"context"
"fmt"
"strings"
"forge.lclr.dev/AI/mcp-framework/secretstore"
)
var loginBitwarden = secretstore.LoginBitwarden
// DefaultLoginHandler retourne un Handler qui authentifie et déverrouille
// Bitwarden, persiste la session BW_SESSION, et confirme le résultat.
// Utiliser comme hook Login lorsqu'aucune logique personnalisée n'est requise.
func DefaultLoginHandler(binaryName string) Handler {
name := strings.TrimSpace(binaryName)
return func(_ context.Context, inv Invocation) error {
if _, err := loginBitwarden(secretstore.BitwardenLoginOptions{
ServiceName: name,
Stdin: inv.Stdin,
Stdout: inv.Stdout,
Stderr: inv.Stderr,
}); err != nil {
return err
}
_, err := fmt.Fprintf(inv.Stdout, "Session Bitwarden persistée pour %q.\n", name)
return err
}
}