134 |
134 |
}
|
135 |
135 |
}
|
136 |
136 |
|
|
137 |
// public void resetPassword(String username, String email, String password) throws Exception {
|
|
138 |
// SearchRequest searchRequest = new SearchRequest("dc=openaire,dc=eu", SearchScope.SUB, Filter.createEqualityFilter("uid", username), "mail");
|
|
139 |
// SearchResult searchResult = ldapConnector.getConnection().search(searchRequest);
|
|
140 |
// List<Modification> mods = new ArrayList<>();
|
|
141 |
//
|
|
142 |
// if (!searchResult.getSearchEntries().isEmpty()) {
|
|
143 |
// Entry entry = searchResult.getSearchEntries().get(0);
|
|
144 |
// if(!entry.getAttributeValue("mail").equals(email)){
|
|
145 |
// if(!EmailValidator.getInstance().isValid(email)){
|
|
146 |
// throw new CustomLDAPException("Invalid email!");
|
|
147 |
// }
|
|
148 |
// Filter uidFilter = Filter.createEqualityFilter("uid", username);
|
|
149 |
// Filter mailFilter = Filter.createEqualityFilter("mail", email);
|
|
150 |
// SearchRequest mailRequest = new SearchRequest("dc=openaire,dc=eu", SearchScope.SUB, Filter.createANDFilter(mailFilter, Filter.createNOTFilter(uidFilter)), "mail", "givenName", "sn", "displayName");
|
|
151 |
// SearchResult mailResult = ldapConnector.getConnection().search(mailRequest);
|
|
152 |
// if(!mailResult.getSearchEntries().isEmpty()){
|
|
153 |
// throw new CustomLDAPException("Email " + email + " already in use!");
|
|
154 |
// }
|
|
155 |
// mods.add(new Modification(ModificationType.REPLACE, "mail", email));
|
|
156 |
// }
|
|
157 |
// //mods.add(new Modification(ModificationType.REPLACE, "userPassword",password));
|
|
158 |
// if(!mods.isEmpty()) {
|
|
159 |
// ldapConnector.getConnection().modify(entry.getDN(), mods);
|
|
160 |
// }
|
|
161 |
// PasswordModifyExtendedRequest passwordModifyExtendedRequest = new PasswordModifyExtendedRequest(entry.getDN(), (String) null, password);
|
|
162 |
// PasswordModifyExtendedResult passwordModifyResult = (PasswordModifyExtendedResult) ldapConnector.getConnection().processExtendedOperation(passwordModifyExtendedRequest);
|
|
163 |
// } else {
|
|
164 |
// throw new CustomLDAPException("Username " + username + " not found!");
|
|
165 |
// }
|
|
166 |
// }
|
|
167 |
|
|
168 |
public void resetPassword(String username, String password) throws Exception {
|
|
169 |
LDAPConnection connection = ldapConnector.getConnection();
|
|
170 |
|
|
171 |
try {
|
|
172 |
|
|
173 |
Filter filter = Filter.createEqualityFilter("uid", username); //uid
|
|
174 |
SearchRequest searchRequest = new SearchRequest(ldapConnector.getUsersDN(), SearchScope.SUB, filter, "uid");
|
|
175 |
SearchResult searchResult = connection.search(searchRequest);
|
|
176 |
String dn = null;
|
|
177 |
for (SearchResultEntry entry : searchResult.getSearchEntries()) {
|
|
178 |
dn = "uid=" + entry.getAttributeValue("uid") + "," + ldapConnector.getUsersDN();
|
|
179 |
logger.info("dn " + dn);
|
|
180 |
}
|
|
181 |
Modification mod1 = new Modification(ModificationType.REPLACE, "userPassword", password);
|
|
182 |
//Modification mod2 = new Modification(ModificationType.REPLACE, "uid");
|
|
183 |
logger.info("mod1: " + mod1);
|
|
184 |
logger.info("Mphka sto reset password");
|
|
185 |
connection.modify(dn, mod1);
|
|
186 |
|
|
187 |
} catch (Exception e) {
|
|
188 |
logger.error("Fail to reset password.", e);
|
|
189 |
throw e;
|
|
190 |
|
|
191 |
} finally {
|
|
192 |
if (connection != null)
|
|
193 |
connection.close();
|
|
194 |
}
|
|
195 |
}
|
|
196 |
|
|
197 |
|
137 |
198 |
public LDAPConnector getLdapConnector() {
|
138 |
199 |
return ldapConnector;
|
139 |
200 |
}
|
Add reset ldap Password