コード例 #1
0
  /**
   * Method to reset the password at the time of login.
   *
   * @param securityDetailsHolder - having emailId, secutiryDetails and password.
   * @return status - true/false
   */
  @Override
  public final boolean resetPassword(final SecurityDetailsHolder securityDetailsHolder) {

    boolean status = false;

    LOGGER.info("In resetPassword method");
    if (securityDetailsHolder.isForceReset()) {
      ForcefulReset forcefulReset = new ForcefulReset();
      forcefulReset.setExistingEmail(securityDetailsHolder.getEmailId());
      forcefulReset.setNewPassword(securityDetailsHolder.getPassword());
      forcefulReset.setSourceSystem(AuthorServicesConstants.SOURCESYSTEM);

      status = userManagement.forceFulReset(forcefulReset);
      if (status) {
        sendNotification.notifyByEmail(securityDetailsHolder.getEmailId(), passwordResetTemplateId);
      }

    } else {
      if (securityDetailsHolder.getSecurityDetails().isEmpty()) {
        throw new ASException(securityquestioncode, securityquestionmessage);
      } else {
        List<UserSecurityQuestionsEntry> userSecurityQuestionsEntriesList = null;
        PasswordResetRequest passwordResetRequest = new PasswordResetRequest();

        PasswordReset passwordReset = new PasswordReset();
        passwordReset.setExistingEmail(securityDetailsHolder.getEmailId());
        passwordReset.setNewPassword(securityDetailsHolder.getPassword());
        passwordReset.setSourceSystem(AuthorServicesConstants.SOURCESYSTEM);

        UserSecurityQuestions userSecurityQuestions = new UserSecurityQuestions();
        UserSecurityQuestionsMap userSecurityQuestionsMap = new UserSecurityQuestionsMap();
        userSecurityQuestionsEntriesList = new ArrayList<UserSecurityQuestionsEntry>();
        UserSecurityQuestionsEntry userSecurityQuestionsEntry = null;

        List<SecurityDetails> securityDetailsList = securityDetailsHolder.getSecurityDetails();
        for (SecurityDetails securityDetails : securityDetailsList) {

          userSecurityQuestionsEntry = new UserSecurityQuestionsEntry();
          userSecurityQuestionsEntry.setKey(securityDetails.getSecurityQuestion());
          userSecurityQuestionsEntry.setText(securityDetails.getSecurityAnswer());
          userSecurityQuestionsEntriesList.add(userSecurityQuestionsEntry);
        }
        userSecurityQuestionsMap.setEntry(userSecurityQuestionsEntriesList);
        userSecurityQuestions.setUserSecurityQuestionsMap(userSecurityQuestionsMap);

        passwordReset.setUserSQuestions(userSecurityQuestions);

        passwordResetRequest.setUpdateUserSecurityAttributes(passwordReset);
        status = userManagement.resetPassword(passwordResetRequest);
        if (status) {
          sendNotification.notifyByEmail(
              securityDetailsHolder.getEmailId(), passwordResetTemplateId);
        }
      }
    }
    return status;
  }