Пример конфигурации пружины приведен ниже.Как использовать зашифрованный накопитель в Spring ImapIdleChannelAdapter
<int-mail:imap-idle-channel-adapter id="mailAdapter"
store-uri="imaps://${"username"}:${"password"}@imap-server:993/INBOX"
java-mail-properties="javaMailProperties"
channel="emails"
should-delete-messages="false"
should-mark-messages-as-read="true">
</int-mail:imap-idle-channel-adapter>
Я хочу сохранить поле пароля зашифрованным в файле свойств и расшифровать его в коде. Я не уверен, как установить свойство mailReceiver ImapIdleChannelAdapter в мою пользовательскую версию ImapMailReceiver. Пожалуйста, дайте мне знать, если есть какой-либо способ сделать это.
Все мои конфигурации представлены в XML, как описано выше. Выше решение о добавлении defifnation не работает, возможно, я делаю что-то неправильно. Затем я попытался использовать конфигурацию XML + Java, как показано ниже.
@Configuration
public class EmailConfiguration {
@Bean
public ImapIdleChannelAdapter customAdapter() {
ImapIdleChannelAdapter adapter = new ImapIdleChannelAdapter(mailReceiver());
adapter.setOutputChannel(outputChannel());
adapter.setErrorChannel(errorChannel());
adapter.setAutoStartup(true);
adapter.setShouldReconnectAutomatically(true);
adapter.setTaskScheduler(taskScheduler());
return adapter;
}
@Bean
public TaskImapMailReceiver mailReceiver() {
TaskImapMailReceiver mailReceiver = new TaskImapMailReceiver("imaps://[username]:[password]@imap.googlemail.com:993/inbox");
mailReceiver.setShouldDeleteMessages(false);
mailReceiver.setShouldMarkMessagesAsRead(true);
//mailReceiver.setJavaMailProperties(javaMailProperties());
mailReceiver.setMaxFetchSize(Integer.MAX_VALUE);
return mailReceiver;
}
}
Также создается пустой errorChannel, outputChannel и т.д. Я заметил, что Spring создает два экземпляра одного с XML-конфигурации и другие с Java @Configuration. Там, где предполагается использовать только java-конфигурацию. Если я удалю xml config tag , то он предоставит экземпляр img экземпляра mymailReceiver, но работает только один раз, не периодически. также не отображает журналы IMAPS.
Просто интересно, нужно ли мне так много сделать, чтобы зашифровать пароль. Что-то не так с моим подходом.
Выше решение не работает. Дайте мне знать, если я что-то делаю неправильно. – Chandra
Спасибо за ответ, Отредактировав вопрос после реализации вашего решения, не могли бы вы предложить, где я иду не так. – Chandra
Ваша конфигурация выглядит нормально; вам нужно удалить адаптер из XML. Я просто написал приложение быстрой загрузки, чтобы протестировать его на тестовом сервере электронной почты в тесте spring-integration-test, и он отлично работает для меня - см. Редактирование моего ответа. –