Авторизация в JSF Java EE

194
29 августа 2018, 08:30

Пишу авторизацию пользователей в моем Web приложении на JSF, возникла проблема в том, что когда мы используем теги h:inputText & h:inputSecret, а потом нажимаем на h:commandButton, то значения полей без всякого хеширования и шифрования отправляются на сервер post запросом.

<h:form>
   <h:inputText value="${authBean.login}"/>
   <h:inputSecret value="${authBean.password}" />
   <h:commandButton value="Войти" action="${authBean.login}"/>
</h:form>

Вопрос состоит в том, чтобы до отправки данных на сервер и при регистрации, и при авторизации, сначала хешировать пароль логин какой нибудь хеш функцией (SHA-256 например), а только потом отправлять их на сервер, чтобы там сравнивать хеши.

Таким образом, получается мы не посылаем в открытую логин и пароль, чтобы их нельзя было перехватить. Можно ли как-то это реализовать в JSF, или придётся с помощью JavaScript осуществлять хеширование на стороне клиента и потом отправлять это серверу?

И если да, то можно ссылки на подобную реализацию, т.к. в Java Script не разбираюсь, не знаю как из него посылать post запросы серверу и т.д.

Answer 1

В целях безопасности для входа и регистрации с использованием JAAS логин и пароль передается в открытом виде, а хэш не передается клиенту и клиент не может его передать на сервер. Если вы используете POST запрос, то эти данные не могут быть видны в URL. Для того, чтобы данные не были перехвачены надо использовать SSL.

READ ALSO
Склейка ByteBuf&#39;ов netty

Склейка ByteBuf'ов netty

Если я пишу длинный запрос на сервер, к примеру 5000 байтов, то приходит только 1024, а потом приходит остальная часть

182
FTP разные кодировки названий

FTP разные кодировки названий

Использую apache ftp client, но проблема в том, что на FTP файлы с разными кодировкамиВот вывод консоли, если я ставлю UTF-8:

187
Изменить/Задать имя процессу Java

Изменить/Задать имя процессу Java

Если такое возможно без сторонних программ типа Launch4J

162