Project

General

Profile

« Previous | Next » 

Revision 49392

Added by Sofia Baltzi over 6 years ago

Add reset ldap Password

View differences:

modules/uoa-user-management/trunk/src/main/java/eu/dnetlib/openaire/user/utils/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
    }
modules/uoa-user-management/trunk/src/main/java/eu/dnetlib/openaire/user/utils/VerificationActions.java
43 43
            e.printStackTrace();
44 44
            logger.info("Fail to insert user.", e);
45 45
        }
46
        
47 46
    }
48 47

  
49

  
50 48
    /**
51 49
     * Updates the row of verification table with the new date for the given username
52 50
     */
......
56 54

  
57 55
            // Get userId to update user
58 56
            UserVerification userVerificationOld = userVerificationDAO.fetchByUsername(username);
59

  
60 57
            UserVerification userVerification  = new UserVerification(username);
61
            logger.info("1 . verificationCode: " + verificationCode);
62 58
            userVerification.setVerificationCode(verificationCode);
63
            logger.info("2 . verificationCode: " + verificationCode);
64 59
            userVerification.setDate(date);
65 60
            userVerification.setId(userVerificationOld.getId());
66 61

  
67 62
            userVerificationDAO.update(userVerification);
68 63

  
69
            logger.info("3 . verificationCode: " + verificationCode);
70 64
            logger.info("Update user: " + username + " with verification code " + verificationCode);
71 65

  
72 66
        } catch (SQLException e) {
......
96 90
            e.printStackTrace();
97 91
            logger.info("Fail to search user.", e);
98 92
        }
99

  
100 93
        return true;
101
        //TODO
102
        //return false;
103
        //throw new UnsupportedOperationException();
104 94
    }
105 95

  
106 96
    /**
......
127 117
                e.printStackTrace();
128 118
                logger.info("Fail to search user.", e);
129 119
            }
130

  
131 120
            return true;
132 121
    }
133 122

  

Also available in: Unified diff