Revision 49392
Added by Sofia Baltzi over 6 years ago
LDAPActions.java | ||
---|---|---|
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 |
} |
Also available in: Unified diff
Add reset ldap Password