-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
85 changed files
with
3,183 additions
and
1,235 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,13 @@ | ||
_* | ||
/unversioned/ | ||
/.gradle/ | ||
/*/.gradle/ | ||
/build/ | ||
/*/build/ | ||
/out/ | ||
*.iml | ||
*.ipr | ||
*.iws | ||
**/*.iml | ||
**/*.ipr | ||
**/*.iws | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
language: java | ||
jdk: oraclejdk7 | ||
|
||
script: | ||
- TERM=dumb ./gradlew check |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,16 @@ | ||
## ADSync4J - Active Directory Synchronization for Java | ||
|
||
ADSync4J is a lightweight Java library that can greatly simplify the task of synchronizing contents from Active Directory to your database, and keeping that content in sync with incremental updates. | ||
[![Build Status](https://travis-ci.org/zagyi/adsync4j.png?branch=develop)](https://travis-ci.org/zagyi/adsync4j) | ||
|
||
### 1. Quick intro | ||
#### What can this library do for you? | ||
#### What is ADSync4J? | ||
ADSync4J is a lightweight Java library that greatly simplifies the task of creating and maintaining a replica of objects living in Active Directory. | ||
|
||
The core functionality is basically made up by two operations: | ||
The library implements a protocol that enables users to download an arbitrary set of data from Active Directory into a local storage *and* to keep it up-to-date with the source by performing periodic incremental synchronization. In short, ADSync4J helps **replicating data from Active Directory**. | ||
|
||
1. Retrieve entries from Active Directory. | ||
2. Retrieve changes made to these entries in incremental updates. | ||
|
||
Both of these operations use the LDAP protocol to talk to the Active Directory server. | ||
|
||
#### What won't id do for you? | ||
|
||
1. The synchronization is one-way only, it does not issue any updates to Active Directory. | ||
2. It cannot read data from Active Directory that is not available through LDAP. In particular, it won't synchronize **user passwords**. | ||
3. It won't persist the data retrieved. Storing the content is out of scope for this library. | ||
|
||
#### How does it work? | ||
|
||
You need to give a few parameters to specify **where** you want to synchronize **from**: | ||
|
||
1. The Active Directory server's address. | ||
2. User credentials to authenticate with. | ||
3. The distinguished name of the directory's root entry. (e.g. `DC=example,DC=com`) | ||
|
||
And a few others to specify **what** you want to synchronize: | ||
|
||
1. Distinguished name of the base entry for synchronization (e.g. `CN=Users,DC=example,DC=com`). | ||
2. LDAP filter defining the entries you are interested in (the scope of synchronization). | ||
3. List of attributes you want to retrieve. | ||
|
||
After having all this information, the first thing to do is a full synchronization. Once the initial set of entries are stored in database, you can poll for changes with a frequency suitable for your application. Incremental synchronization will report any changes that has been made in Active Directory to the entries within the defined scope (including updates, inserts and deletes). | ||
|
||
## 2. Detailed user guide | ||
#### Why would you want to replicate data from Active Directory? | ||
There can be many use-cases. For example, a typical problem you might face when interacting with Active Directory through LDAP is the poor querying interface that LDAP offers. This becomes an issue if you frequently need to perform queries that go beyond what is feasible using LDAP filters. With ADSync4J it's easy to replicate directory objects you are interested in into a relational or graph database, and leverage the more expressive query language they offer. | ||
|
||
ADSync4J can also be used to solve integration problems. If you need to deploy your application into an environment where user accounts come from a diverse set of sources including Active Directory, then ADSync4J will be of great help in keeping the central identity store of the application in sync with Active Directory. | ||
|
||
#### How to use this library? | ||
Please refer to the detailed documentation on the [project wiki pages](https://github.com/zagyi/adsync4j/wiki). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.