Если oAuth2Authentication.getAuthorities()
является List
, вы можете легко создать Set
из него:
user.setAuthorities(new HashSet<GrantedAuthority>(oAuth2Authentication.getAuthorities()));
Обратите внимание, что GrantedAuthority
должен иметь правильную реализацию hashCode()
и equals()
. ] для использования в качестве члена HashSet
.
Zend Framework does not have a password-generating class. Here's an article on how to use the PEAR module Text_Password
to generate a password:
https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/howdoi/?p=118
Однако отправлять пароль не рекомендуется в простом электронном письме. Вместо этого вы должны сбросить их учетную запись, чтобы они могли временно входить в систему без указания пароля (с учетом истекающего URL-адреса, который вы отправляете им в письме), и после того, как они войдут в систему, потребовать от них обновить свой собственный пароль до чего-то они знаю. Затем сохраните соленый хеш их пароля.
Вот несколько советов, которые я могу сделать в Zend Framework:
AccountReset
с полями: reset_id
(Первичный ключ GUID), account_id
(ссылка на Accounts.account_id
) и срок действия
(отметка времени). он ищет свой параметр reset_id
в таблице AccountReset
. Если этот GUID существует и время истечения
не прошло, предоставьте пользователю форму для изменения своего пароля (без необходимости аутентификации и входа в систему). resetAction ()
получает запрос без GUID, или GUID не существует в базе данных, или у этой строки истек срок действия
, тогда это действие может вместо этого предоставить пользователю кнопку для запуска нового сброса запрос и отправьте письмо с новым GUID. Не забудьте сделать эту кнопку запросом POST! Поскольку GUID сообщается только по электронной почте на адрес этого пользователя, никто другой не может получить доступ для изменения пароля. Даже если электронная почта пользователя будет перехвачена, Только в течение ограниченного времени GUID предоставит такой доступ.
Если вы хотите быть еще более осторожным, вы можете записать IP-адрес клиента в таблице AccountReset
и потребовать изменения пароля. от клиента с тем же IP-адресом в пределах этого 30-минутного окна.
Это только из-под контроля, и я не реализовал его и не оценил его на предмет надлежащей безопасности. Если вы несете ответственность за обеспечение безопасности, вы обязаны прочитать о проблемах безопасности. Хорошо известный ресурс по безопасности PHP - это http://phpsecurity.org/ .
Это всего лишь секрет, и я не реализовал его и не оценил для обеспечения надлежащей безопасности. Если вы несете ответственность за обеспечение безопасности, вы обязаны прочитать о проблемах безопасности. Хорошо известный ресурс по безопасности PHP - это http://phpsecurity.org/ .
Это всего лишь секрет, и я не реализовал его и не оценил для обеспечения надлежащей безопасности. Если вы несете ответственность за обеспечение безопасности, вы обязаны прочитать о проблемах безопасности. Хорошо известный ресурс по безопасности PHP - это http://phpsecurity.org/ .