Commit Graph

96 Commits

Author SHA1 Message Date
Simon Beck 9ce0d22c99 Fix wrong handling of multi value attributes
continuous-integration/drone/push Build is passing Details
While ldapsearch doesn't seem to mind, apps like keycloak seem to have
issues with adding multiple attributes with different values. While
the resulting ldif in ldapsearch is indistinguishable there seems to
be a slight different on the protocol level.

If adding multiple attributes with the same name and different values,
keycloak will only see the last entry. But adding a single attribute
a slice of values is seems to handle it correctly.
2022-02-14 12:13:31 +01:00
Simon Beck f05e41c9aa Improve password hash handling
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
This adds support for more hash algorithms. Also a stored password will
be updated to SSHA512 upon a successful bind. It will also automatically
hash a cleartext password if the `userpassword` field is modified with
a cleartext one.

Hashes supported:
* SSHA
* SSHA256
* SSHA512
2022-02-10 20:51:01 +01:00
Quentin dbd9003714
Disable reconnect in tests + some cosmetic changes
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2021-09-16 13:52:46 +02:00
Quentin a08be6b395
Patch ASN.1 BER encoding of integers and length + unit tests 2021-09-16 13:51:43 +02:00
Quentin 2a844bd559
Encoding errors must be logged 2021-09-16 13:47:09 +02:00
Quentin 2707dd77c5
Use vendored goldap 2021-09-16 13:46:18 +02:00
Quentin 477d7014ed
Vendor goldap 2021-09-16 13:41:01 +02:00
MrArmonius a53641e773 Correct the function GenerateName
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
The problem was the encode in `name += string(alphabet[])`
It takes only 1 byte but the characters like 'è','@' are encoding
on several bytes (1 to 4 bytes).
The better solution was to create a slice of string, like this
we don't have problem about take only one byte instead of 2,3 or 4
bytes.
2021-07-26 15:36:45 +02:00
MrArmonius 9a8c19ec0f Bottin's Test V2.0 with Framework Testing
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
V2 the test end-to-end,
Tests made similar to V1.0,

Add the possibility to pararellize the tests,
Create an environnement for easy integration of news test,
2021-07-19 18:57:40 +02:00
MrArmonius da627ac39a Script in ash to launch our test V1.0 (end-to-end) in a Consul's
container
2021-07-19 18:57:40 +02:00
MrArmonius a98556d5c1 Test End-to-end V1.0, testing Bottin's behavior
Tests wrote in golang without framework Testing on the Bottin's behavior

Tests made:
- crated random Users and Group - LDAP ADD
- check the match between Consul's data and Test's data- LDAP
  Search
- modify attributes and check them -
  LDAP Modify
2021-07-19 18:56:47 +02:00
Alex aa912b5ceb Add drone signature
continuous-integration/drone/push Build is passing Details
2021-04-05 12:19:02 +02:00
Alex c32d605a11 Fix logo in readme
continuous-integration/drone/push Build is passing Details
2021-04-05 11:53:42 +02:00
Alex 91bd4c35dd Drone CI badge for branch main
continuous-integration/drone/push Build is passing Details
2021-04-05 11:49:16 +02:00
Alex 2b0c6f09ff Update bottin version in hcl example
continuous-integration/drone/push Build is passing Details
2021-03-09 19:08:59 +01:00
Alex 99d8955ab3 Refactor & add case normalization logic to putAttributes
continuous-integration/drone/push Build is passing Details
2021-03-09 19:00:45 +01:00
Alex 1a20a64eff Refactoring
continuous-integration/drone/push Build is passing Details
2021-03-09 18:30:59 +01:00
Alex dc3fd4df65 Use consul's stale reads by default 2021-03-09 18:24:30 +01:00
Alex b17e3fe3c7 Add bottin CI badge
continuous-integration/drone/push Build is passing Details
2021-02-08 14:44:44 +01:00
Alex af6dd95107 test add drone CI
continuous-integration/drone/push Build is passing Details
2021-02-08 14:12:52 +01:00
Alex e4b5c67be0 Style changes 2020-11-13 12:55:32 +01:00
Alex 4367e4a232 Fix horrible, horrible bug 2020-11-13 12:47:54 +01:00
Alex f43934a7b9 Fix image link in README.md 2020-04-04 18:55:58 +02:00
Alex 15b2b812bf Add use case paragraph in README 2020-03-11 08:42:25 +01:00
Alex f244607a7a Mention Guichet in README 2020-02-28 18:31:44 +01:00
Alex 825aa77089 Hopefully, fix most case-sensitivity issues
- DNs are always used in canonical form: lowercase, no spaces. This is
  how they are internally handled and stored in paths and fields such as
  member and memberof
- Attribute names now can have any combination of lower/uppercase and
  stuff should work
- When modifying an attribute with a name that hase a different
  lower/upper combination than the previously stored value, keep the
  previous attribute name
- Trim spaces from values and do not store empty values
2020-02-15 12:07:31 +01:00
Alex 0c4d55895c Update docker image version 2020-02-14 22:03:46 +01:00
Alex afcad41e85 Use lowercase attributes objectclass and structuralobjectclass 2020-02-14 21:26:43 +01:00
Alex fd6a555216 Ensure objects have an objectclass property 2020-02-14 21:23:01 +01:00
Alex 81328aa321 Update docker image to version 12 2020-02-13 17:56:44 +01:00
Alex 13d8cf028a Add a function to resync member/memberOf values over the database 2020-02-13 14:41:49 +01:00
Alex 49be2069f6 Refactor memberOf management logic 2020-02-13 14:41:49 +01:00
Alex 6f893138a3 Make getAttribute return an empty array instead of nil when key not found 2020-02-13 14:41:49 +01:00
Alex 851573e28f Fix equality test in ldap compare request 2020-02-13 14:41:49 +01:00
Alex c3d30df155 Update Docker image 2020-02-12 17:39:09 +01:00
Alex 8ca2d39971 Optimize some kv.List requests to not list all children 2020-02-12 15:14:58 +01:00
Alex e52a1f74a3 Handle search attribute * 2020-02-11 23:20:33 +01:00
Alex 9e365d4b53 Update nomad hcl file to use template instead of artifact 2020-02-10 17:45:10 +01:00
Alex 938311a48e Make Makefile more generic 2020-02-10 11:54:36 +01:00
Alex 8e819b7d5c Modify initial administrator account to include displayname attribute 2020-02-10 11:37:39 +01:00
Alex 0402f7806a Implement (inefficiently) search scopes 2020-02-09 18:36:27 +01:00
Quentin d02bd17b16 Fix logo path (broken due to repo renaming) 2020-02-02 22:04:46 +01:00
Alex adc5ecdbbc Change some Printf's to Debugf's 2020-02-02 16:51:23 +01:00
Alex f32c272db2 Merge branch 'gomod' of Deuxfleurs/bottin into master 2020-02-02 15:01:35 +01:00
Maximilien Richer a6faceb559
Import upstream lor00x/goldap reposity 2020-02-02 14:47:16 +01:00
Maximilien Richer 3644fdfe61
Rename go module to bottin 2020-02-02 14:32:37 +01:00
Alex 0c801e02d5 Remove spaces between dn components, use warnings when necessary 2020-02-02 13:53:29 +01:00
Alex 4c037dcb94 Bug fix: case-insensitive value match (except for passwords) 2020-02-02 13:32:12 +01:00
Alex e9e7a4cb4b Update README with accurate info on how to build Bottin 2020-02-02 12:34:52 +01:00
Maximilien Richer 0274ab0038
Implements go modules
Following errors compiling with go 1.13
See https://blog.golang.org/migrating-to-go-modules for details.
2020-02-02 12:10:02 +01:00