up
This commit is contained in:
parent
5134f9aa28
commit
d2d4f36443
36
main.go
36
main.go
@ -50,20 +50,26 @@ func (d *mainDriver) ClientDisconnected(cc ftpserver.ClientContext) {
|
||||
func (d *mainDriver) GetTLSConfig() (*tls.Config, error) {
|
||||
return nil, nil // Pas de TLS, à gérer si tu veux FTPS
|
||||
}
|
||||
func (d *mainDriver) AuthUser(cc ftpserver.ClientContext, user, pass string) (ftpserver.ClientDriver, error) {
|
||||
log.Printf("[FTP] Tentative login user='%s' pass='%s'", user, pass)
|
||||
import (
|
||||
"errors"
|
||||
"net"
|
||||
// ... autres imports
|
||||
)
|
||||
|
||||
func (d *ftpMainDriver) AuthUser(cc ftpserverlib.ClientContext, user, pass string) (ftpserverlib.ClientDriver, error) {
|
||||
remoteAddr := cc.RemoteAddr().String()
|
||||
host, _, _ := net.SplitHostPort(remoteAddr)
|
||||
log.Printf("[FTP] Tentative login user='%s' pass='%s' depuis %s", user, pass, host)
|
||||
|
||||
// 1. Login classique
|
||||
if user == "cangui2089" && pass == "GHT30k7!" {
|
||||
uploadPath, _ := filepath.Abs("upload")
|
||||
fi, err := os.Stat(uploadPath)
|
||||
if err != nil || !fi.IsDir() {
|
||||
log.Printf("[FTP] Le dossier upload/ est manquant ou non valide : %v", err)
|
||||
return nil, errors.New("le dossier upload/ doit exister")
|
||||
}
|
||||
log.Printf("[FTP] Connexion OK, exposé: %s", uploadPath)
|
||||
return &clientDriver{
|
||||
fs: afero.NewBasePathFs(afero.NewOsFs(), uploadPath),
|
||||
}, nil
|
||||
base := filepath.Clean("upload")
|
||||
fs := afero.NewBasePathFs(afero.NewOsFs(), base)
|
||||
log.Printf("[FTP] OK user %s", user)
|
||||
return &ftpClientDriver{fs: fs}, nil
|
||||
}
|
||||
|
||||
// 2. Autoriser anonymous depuis 192.168.1.123 uniquement
|
||||
if user == "anonymous" && host == "82.65.73.115" {
|
||||
base := filepath.Clean("upload")
|
||||
fs := afero.NewBasePathFs(afero.NewOsFs(), base)
|
||||
@ -74,10 +80,14 @@ func (d *mainDriver) AuthUser(cc ftpserver.ClientContext, user, pass string) (ft
|
||||
// 3. Sinon refuse tout anonyme ou mauvais login
|
||||
if user == "" || user == "anonymous" {
|
||||
log.Printf("[FTP] Login anonymous refusé pour %s", host)
|
||||
return nil, errors.New("anonymous login not allowed")
|
||||
}
|
||||
|
||||
return nil, errors.New("identifiants invalides")
|
||||
log.Printf("[FTP] Refus user=%s pass=%s", user, pass)
|
||||
return nil, errors.New("invalid login")
|
||||
}
|
||||
|
||||
|
||||
// ---------- clientDriver = wrapper sur afero.Fs ----------
|
||||
|
||||
func (c *clientDriver) Name() string { return "aferofs" }
|
||||
|
||||
Loading…
Reference in New Issue
Block a user