* Add TLS options for running both with TLS and without on the same time.
This commit expands on the settings available for using TLS. It puts TLS settings under the [frontend.tls] section and adds a new setting to [frontend] called TLSExclusive (bool).
TLSExclusive specifies whether or not to only run TLS when it is enabled, and is 'true' by default. Setting it to 'false' and having TLS enabled, causes the server to start both a LDAP and LDAPS server,
and therefore requires to seperate 'listen' options (to run on different ports) - the Frontend.Listen and the Frontend.TLS.Listen. If TLSExclusive is set to 'true' and no Frontend.TLS.Listen is specified, it will use the Frontend.Listen.
As discussed in issue #51, Arm32 builds were using 368 (intel/amd) arch accidentally, generating linux 32 bit binaries instead of arm 32 bit binaries. This commit fixes this in the Makefile, which will fix both the local builds, as well as the travis CI and release builds.
fixes#52
Includes a number of fixes and improvements:
- Add 2 factor auth (thanks @ryskov)
- Dockerfile imporvements
- Removing repo cruft
- Improving travis builds and integration tests
- Fixing broken amazon s3 packages (thanks @ryskov)
- Vastly improved version string - now autogenerates based on git status in the repo at the time of build
- Starting on travis builds for releases (currently built on my workstation)
- Starting framework for unit tests
- Add codecov to CI
Merging in feature from @ryskov (PR #24) adding 2FA support during LDAP binds. This is accomplished by concatenating the code to the end of the password.
Also added integration tests for the TOTP method to run in CI. Could not, however, add automated tests for the yubikey, due the physical nature.
Fixes a few minor issues:
#42 - now uses the makefile in the docker build, which means version info is correctly embedded at runtime - also now outputs version data at the top of the log when the container starts
Fixing a simple issue found by go vet. Need to do more work on fixing issues found in go vet.
Adds the build info to the binary at buildtime via buildtime variables. This is shown by `./glauth --version`.
Example output for a non-release:
```
GLauth
Non-release build from branch feature/buildversion
Build time: 20180531_181011Z
Commit: 07ba631c2fd0050f375655ad7c44f862e0e6640c
```
And example of a built release:
```
GLauth v2.3.4
Build time: 20180601_041330Z
Commit: 931d666262b96bab8a5c760be42d7facec7a2d74
```
This includes an integration test which runs glauth and compares ldapsearch snapshot output stored in the repo compared to the snapshot output of the glauth.
Additionally, removing old versions of go, and adding windows and linuxar builds (but not tests) to the makefile, and consequently, the travis build.
While the mac, linux-arm, and windows binaries are not able to be run in travis, they are able to be at least compiled.