Commit graph

96 commits

Author SHA1 Message Date
Simon Beck
9ce0d22c99 Fix wrong handling of multi value attributes
All checks were successful
continuous-integration/drone/push Build is passing
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
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
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
dbd9003714
Disable reconnect in tests + some cosmetic changes
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2021-09-16 13:52:46 +02:00
a08be6b395
Patch ASN.1 BER encoding of integers and length + unit tests 2021-09-16 13:51:43 +02:00
2a844bd559
Encoding errors must be logged 2021-09-16 13:47:09 +02:00
2707dd77c5
Use vendored goldap 2021-09-16 13:46:18 +02:00
477d7014ed
Vendor goldap 2021-09-16 13:41:01 +02:00
MrArmonius
a53641e773 Correct the function GenerateName
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
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
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
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
aa912b5ceb Add drone signature
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-05 12:19:02 +02:00
c32d605a11 Fix logo in readme
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-05 11:53:42 +02:00
91bd4c35dd Drone CI badge for branch main
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-05 11:49:16 +02:00
2b0c6f09ff Update bottin version in hcl example
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-09 19:08:59 +01:00
99d8955ab3 Refactor & add case normalization logic to putAttributes
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-09 19:00:45 +01:00
1a20a64eff Refactoring
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-09 18:30:59 +01:00
dc3fd4df65 Use consul's stale reads by default 2021-03-09 18:24:30 +01:00
b17e3fe3c7 Add bottin CI badge
All checks were successful
continuous-integration/drone/push Build is passing
2021-02-08 14:44:44 +01:00
af6dd95107 test add drone CI
All checks were successful
continuous-integration/drone/push Build is passing
2021-02-08 14:12:52 +01:00
e4b5c67be0 Style changes 2020-11-13 12:55:32 +01:00
4367e4a232 Fix horrible, horrible bug 2020-11-13 12:47:54 +01:00
f43934a7b9 Fix image link in README.md 2020-04-04 18:55:58 +02:00
15b2b812bf Add use case paragraph in README 2020-03-11 08:42:25 +01:00
f244607a7a Mention Guichet in README 2020-02-28 18:31:44 +01:00
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
0c4d55895c Update docker image version 2020-02-14 22:03:46 +01:00
afcad41e85 Use lowercase attributes objectclass and structuralobjectclass 2020-02-14 21:26:43 +01:00
fd6a555216 Ensure objects have an objectclass property 2020-02-14 21:23:01 +01:00
81328aa321 Update docker image to version 12 2020-02-13 17:56:44 +01:00
13d8cf028a Add a function to resync member/memberOf values over the database 2020-02-13 14:41:49 +01:00
49be2069f6 Refactor memberOf management logic 2020-02-13 14:41:49 +01:00
6f893138a3 Make getAttribute return an empty array instead of nil when key not found 2020-02-13 14:41:49 +01:00
851573e28f Fix equality test in ldap compare request 2020-02-13 14:41:49 +01:00
c3d30df155 Update Docker image 2020-02-12 17:39:09 +01:00
8ca2d39971 Optimize some kv.List requests to not list all children 2020-02-12 15:14:58 +01:00
e52a1f74a3 Handle search attribute * 2020-02-11 23:20:33 +01:00
9e365d4b53 Update nomad hcl file to use template instead of artifact 2020-02-10 17:45:10 +01:00
938311a48e Make Makefile more generic 2020-02-10 11:54:36 +01:00
8e819b7d5c Modify initial administrator account to include displayname attribute 2020-02-10 11:37:39 +01:00
0402f7806a Implement (inefficiently) search scopes 2020-02-09 18:36:27 +01:00
d02bd17b16 Fix logo path (broken due to repo renaming) 2020-02-02 22:04:46 +01:00
adc5ecdbbc Change some Printf's to Debugf's 2020-02-02 16:51:23 +01:00
f32c272db2 Merge branch 'gomod' of Deuxfleurs/bottin into master 2020-02-02 15:01:35 +01:00
a6faceb559
Import upstream lor00x/goldap reposity 2020-02-02 14:47:16 +01:00
3644fdfe61
Rename go module to bottin 2020-02-02 14:32:37 +01:00
0c801e02d5 Remove spaces between dn components, use warnings when necessary 2020-02-02 13:53:29 +01:00
4c037dcb94 Bug fix: case-insensitive value match (except for passwords) 2020-02-02 13:32:12 +01:00
e9e7a4cb4b Update README with accurate info on how to build Bottin 2020-02-02 12:34:52 +01:00
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