Skip to content

Commit d54c629

Browse files
committed
added SPI docs to readme, updated versions in README
1 parent 148acbf commit d54c629

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

README.adoc

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ _LDAP Authenticator for Apache Cassandra_
55
image:https://circleci.com/gh/instaclustr/cassandra-ldap.svg?style=svg["Instaclustr",link="https://circleci.com/gh/instaclustr/cassandra-ldap"]
66

77
- Website: https://www.instaclustr.com/
8-
- Documentation: [https://www.instaclustr.com/support/documentation/)
8+
- Documentation: https://www.instaclustr.com/support/documentation/
99
1010
This is a pluggable authentication implementation for Apache Cassandra, providing a way to authenticate
1111
and create users based on a configured LDAP server. This implementation provides authentication only.
@@ -22,10 +22,10 @@ these classes will be present when such plugin as a whole is put on a class path
2222

2323
There are four implementation modules:
2424

25-
* cassandra-2.2 - builds against version 2.2.18
26-
* cassandra-3.0 - builds against version 3.0.18
27-
* cassandra-3.11 - builds against version 3.11.8
28-
* cassandra-4.0 - builds against version 4.0-beta2
25+
* cassandra-2.2 - builds against version 2.2.19
26+
* cassandra-3.0 - builds against version 3.0.23
27+
* cassandra-3.11 - builds against version 3.11.9
28+
* cassandra-4.0 - builds against version 4.0-beta3
2929
3030
Project is built as:
3131

@@ -136,7 +136,6 @@ role_manager: LDAPCassandraRoleManager
136136
For 3.11 and 4, configure credential caching parameters in `cassandra.yaml` if necessary and if you want
137137
that cache to be enabled (as per configuration parameters). [Re]start Cassandra.
138138

139-
140139
## Example
141140

142141
For fast testing there is Debian OpenLDAP Docker container
@@ -185,6 +184,21 @@ If you delete `cassandra` user, there is suddenly not such user. You have to res
185184

186185
Where `dba` is _new_ superuser which is able to write to `system_auth.roles` and acts as Cassandra admin.
187186

187+
## SPI for LDAP server implementations (advanced)
188+
189+
In order to talk to a LDAP server, there is `DefaultLDAPServer` class in `base` module which all modules are using.
190+
However, it might not be enough - there is a lot of LDAP servers out there and their internals and configuration
191+
might render the default implementation incompatible. If you have special requirements, you might provide your
192+
own implementation by extending `DefaultLDAPServer` and overriding what is necessary. You might as well
193+
extend and implement `LDAPPasswordRetriever` class. `DefaultLDAPServer` just extends it.
194+
195+
To tell LDAP plugin to use your implementation, you need to create a file in `src/main/resources/META-INF/services`
196+
called `com.instaclustr.cassandra.ldap.auth.LDAPPasswordRetriever` and the content of that file needs to
197+
be just one line - the fully qualified class name (with package) of your custom implementation.
198+
199+
After you build such plugin, the SPI mechanism upon plugin's initialisation during Cassandra node startup
200+
will pick up your custom LDAP server connection / authentication logic.
201+
188202
## Further Information
189-
- See blog by Kurt Greaves ["Apache Cassandra LDAP Authentication"](https://www.instaclustr.com/apache-cassandra-ldap-authentication/)
203+
- See blog by Kurt Greaves https://www.instaclustr.com/apache-cassandra-ldap-authentication/[Apache Cassandra LDAP Authentication]
190204
- Please see https://www.instaclustr.com/support/documentation/announcements/instaclustr-open-source-project-status/ for Instaclustr support status of this project

0 commit comments

Comments
 (0)