diff --git a/.gitignore b/.gitignore index 49d0f36..7d5152a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -vendor/ chldapasswd config.json bindata.go \ No newline at end of file diff --git a/go.mod b/go.mod deleted file mode 100644 index 0248615..0000000 --- a/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module git.nemunai.re/chldapasswd - -go 1.15 - -require ( - github.com/amoghe/go-crypt v0.0.0-20191109212615-b2ff80594b7f - gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect - gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect - gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df - gopkg.in/ldap.v2 v2.5.1 -) diff --git a/go.sum b/go.sum deleted file mode 100644 index 0d3b951..0000000 --- a/go.sum +++ /dev/null @@ -1,10 +0,0 @@ -github.com/amoghe/go-crypt v0.0.0-20191109212615-b2ff80594b7f h1:JxPBJknH9/9Yp0BPLZII8Cn4vaWPNsFOdkmpIwPhO8A= -github.com/amoghe/go-crypt v0.0.0-20191109212615-b2ff80594b7f/go.mod h1:eFiR01PwTcpbzXtdMces7zxg6utvFM5puiWHpWB8D/k= -gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= -gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= -gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE= -gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= -gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= diff --git a/ldap.go b/ldap.go index 2050e7c..e41deff 100644 --- a/ldap.go +++ b/ldap.go @@ -19,10 +19,6 @@ type LDAP struct { BaseDN string ServiceDN string ServicePassword string - MailHost string - MailPort int - MailUser string - MailPassword string } func (l LDAP) Connect() (*LDAPConn, error) { diff --git a/lost.go b/lost.go index 33abb11..d2aa34d 100644 --- a/lost.go +++ b/lost.go @@ -116,44 +116,33 @@ func lostPassword(w http.ResponseWriter, r *http.Request) { m.SetHeader("Subject", "SSO nemunai.re: password recovery") m.SetBody("text/plain", "Hello "+cn+"!\n\nSomeone, and we hope it's you, requested to reset your account password. \nIn order to continue, go to:\nhttps://ldap.nemunai.re/reset?l="+r.PostFormValue("login")+"&t="+token+"\n\nBest regards,\n-- \nnemunai.re SSO") - var s gomail.Sender - if myLDAP.MailHost != "" { - d := gomail.NewDialer(myLDAP.MailHost, myLDAP.MailPort, myLDAP.MailUser, myLDAP.MailPassword) - s, err = d.Dial() + // Using local sendmail: delegate to the local admin sys the responsability to transport the mail + s := gomail.SendFunc(func(from string, to []string, msg io.WriterTo) error { + cmd := exec.Command("sendmail", "-t") + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + + pw, err := cmd.StdinPipe() if err != nil { - log.Println("Unable to connect to email server: " + err.Error()) - displayTmplError(w, http.StatusInternalServerError, "lost.html", map[string]interface{}{"error": "Unable to connect to email server: " + err.Error()}) - return + return err } - } else { - // Using local sendmail: delegate to the local admin sys the responsability to transport the mail - s = gomail.SendFunc(func(from string, to []string, msg io.WriterTo) error { - cmd := exec.Command("sendmail", "-t") - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - pw, err := cmd.StdinPipe() + err = cmd.Start() + if err != nil { + return err + } + + var errs [3]error + _, errs[0] = m.WriteTo(pw) + errs[1] = pw.Close() + errs[2] = cmd.Wait() + for _, err = range errs { if err != nil { return err } - - err = cmd.Start() - if err != nil { - return err - } - - var errs [3]error - _, errs[0] = m.WriteTo(pw) - errs[1] = pw.Close() - errs[2] = cmd.Wait() - for _, err = range errs { - if err != nil { - return err - } - } - return nil - }) - } + } + return nil + }) if err := gomail.Send(s, m); err != nil { log.Println("Unable to send email: " + err.Error()) diff --git a/main.go b/main.go index 4049f75..7d084bd 100644 --- a/main.go +++ b/main.go @@ -18,10 +18,9 @@ import ( ) var myLDAP = LDAP{ - Host: "localhost", - Port: 389, - BaseDN: "dc=example,dc=com", - MailPort: 587, + Host: "localhost", + Port: 389, + BaseDN: "dc=example,dc=com", } type ResponseWriterPrefix struct { @@ -126,23 +125,6 @@ func main() { myLDAP.ServicePassword = val } - if val, ok := os.LookupEnv("SMTP_HOST"); ok { - myLDAP.MailHost = val - } - if val, ok := os.LookupEnv("SMTP_PORT"); ok { - if port, err := strconv.Atoi(val); err == nil { - myLDAP.MailPort = port - } else { - log.Println("Invalid value for SMTP_PORT:", val) - } - } - if val, ok := os.LookupEnv("SMTP_USER"); ok { - myLDAP.MailUser = val - } - if val, ok := os.LookupEnv("SMTP_PASSWORD"); ok { - myLDAP.MailPassword = val - } - // Prepare graceful shutdown interrupt := make(chan os.Signal, 1) signal.Notify(interrupt, os.Interrupt, syscall.SIGTERM)