Итак, я пробую Spring Security, используя OAuth2 в Spring Boot 2.
Я основал этот сайт в качестве моей ссылки:
https://dzone.com/articles/secure-spring-rest-with-spring-security-and-oauth2
После настройки сервера авторизациивверх, из него можно получить токены, используя конечную точку http://localhost:8080/oauth/token, передав запрос POST.
Что меня раздражает, так это то, что запрос POST должен содержать мое имя пользователя и пароль в виде простого текста
POST /oauth/token HTTP/1.1
Host: localhost:8080
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="grant_type"
password
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="username"
admin
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="password"
password
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Разве это не очень большая угроза безопасности?Разве каждый маршрутизатор на пути от клиента к серверу сможет видеть содержимое тела POST?
Теперь, чтобы решить эту проблему, предположим, что я использую алгоритм симметричного шифрования на стороне клиента в javascript для шифрования пароля.Поскольку все клиенты получат одинаковый алгоритм шифрования, маршрутизаторы на этом пути могут симметрично декодировать мой пароль.Что не достаточно хорошо.
Если мне нужно было передать учетные данные в виде простого текста, то какая польза от Spring Security?Я что-то здесь не так делаю?Крупные корпорации не могут использовать это.Есть ли в Spring Security какие-либо дополнительные средства, позволяющие нам предотвратить эту ситуацию?