2014-12-09 2 views
0

Я следую: https://docs.wso2.com/display/IS500/Recover+with+NotificationWSO2 Сервер идентификации {пароль сброса-ссылку}

Все не работает до тех пор, sendRecoveryNotification().

Я могу отправить адрес для сброса пароля, но адрес электронной почты имеет только «{password-reset-link}», написанный буквально, а не указанный URL в targetEpr с добавленным ключом подтверждения.

Тег {key} также написан буквально в электронном письме, поэтому я не могу построить ссылку вручную (я ожидал, что он может вывести ключ подтверждения ).

В журналах ничего полезного нет.

У кого-нибудь была эта проблема раньше?

ответ

2

Я не видел этого, но должен быть проблема с вашим userParameters контексте

org.wso2.carbon.identity.mgt.mail.DefaultEmailSendingModule.replacePlaceHolders() имеет следующий код:

public static String replacePlaceHolders(String text, Map<String, String> userParameters) { 

    if (userParameters != null) { 
     for (Map.Entry<String, String> entry : userParameters.entrySet()) { 
      String key = entry.getKey(); 
      if (key != null && entry.getValue() != null) { 
       text = text.replaceAll("\\{" + key + "\\}", entry.getValue()); 
      } 
     }   } 

    return text; 
} 

так, если маркер не будет заменен, он не должен был в userParameters прошли в.

это может быть помощь ...

Кроме того, шаблон сброса электронной почты является FUBAR и не будет работать как отправленный в продукте.

Ссылка в шаблон электронной почты заключается в следующем: http://localhost:[PORT]/InfoRecoverySample/infoRecover/verify?confirmation= {подтверждение кода}

Правильная ссылка сброса, которая работает, должны иметь {имя пользователя} маркер также:

http://localhost:[PORT]/InfoRecoverySample/infoRecover/verify?confirmation= {подтверждение-код } & имя пользователя = {имя-пользователя}

Да, для этого потребовалось использование WSO2. Я попросил, чтобы это было исправлено в выпуске продукта

Смежные вопросы