Revision 49186
Added by Tsampikos Livisianos over 6 years ago
modules/uoa-user-management/trunk/src/main/java/eu/dnetlib/openaire/user/utils/LDAPActions.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import com.unboundid.ldap.sdk.*; |
4 | 4 |
import eu.dnetlib.openaire.user.store.LDAPConnector; |
5 |
import eu.dnetlib.openaire.user.utils.LDAPExceptions.LDAPEmailExistsException; |
|
6 |
import eu.dnetlib.openaire.user.utils.LDAPExceptions.LDAPUsernameExistsException; |
|
7 |
|
|
5 | 8 |
import org.apache.log4j.Logger; |
6 | 9 |
import org.springframework.beans.factory.annotation.Autowired; |
7 | 10 |
|
... | ... | |
33 | 36 |
|
34 | 37 |
return null; |
35 | 38 |
} |
39 |
|
|
40 |
public Entry createUser(String username, String email, String fistName, String lastName, String password) throws Exception{ |
|
41 |
|
|
42 |
Filter uidFilter = Filter.createEqualityFilter("uid", username); |
|
43 |
SearchRequest uidRequest = new SearchRequest("dc=openaire,dc=eu", SearchScope.SUB, uidFilter, "cn", "mail", "uid", "objectClass"); |
|
44 |
|
|
45 |
Filter mailFilter = Filter.createEqualityFilter("mail", email); |
|
46 |
SearchRequest mailRequest = new SearchRequest("dc=openaire,dc=eu", SearchScope.SUB, mailFilter, "cn", "mail", "uid", "objectClass"); |
|
47 |
|
|
48 |
SearchResult searchResult = ldapConnector.getConnection().search(uidRequest); |
|
49 |
if(!searchResult.getSearchEntries().isEmpty()){ |
|
50 |
throw new LDAPUsernameExistsException(username); |
|
51 |
} |
|
52 |
searchResult = ldapConnector.getConnection().search(mailRequest); |
|
53 |
if(!searchResult.getSearchEntries().isEmpty()){ |
|
54 |
throw new LDAPEmailExistsException(email); |
|
55 |
} |
|
56 |
|
|
57 |
Entry entry = new Entry("dn: uid=" + username + ",ou=users,dc=openaire,dc=eu", |
|
58 |
"objectClass: inetOrgPerson", |
|
59 |
"objectClass: eduPerson", |
|
60 |
"cn: " + username, |
|
61 |
"uid: " + username, |
|
62 |
"displayName: " + fistName + " " + lastName, |
|
63 |
"mail: " + email, |
|
64 |
"givenName: " + fistName, |
|
65 |
"sn: " + lastName, |
|
66 |
"eduPersonPrincipalName: " + username + "@openaire.eu", |
|
67 |
"userPassword: " + password); |
|
68 |
ldapConnector.getConnection().add(entry); |
|
69 |
logger.info("User: " + username + " was created successfully!"); |
|
70 |
|
|
71 |
return entry; |
|
72 |
} |
|
73 |
|
|
36 | 74 |
} |
Also available in: Unified diff
add create ldap user