Project

General

Profile

« Previous | Next » 

Revision 49392

Added by Sofia Baltzi over 6 years ago

Add reset ldap Password

View differences:

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