Весенняя сессия и файлы cookie по-прежнему актуальны, поскольку есть весенняя безопасность и JWT

Несколько месяцев назад я начал проект весенней загрузки и использовал сеанс Spring JDBC с файлами cookie. приложение связано с оплатой. Чтобы получить пользователя в сеансе, я получил файл cookie от HTTPRequestservelet и передал идентификатор в нем сеансу JDBC, чтобы получить пользователя в сеансе. Теперь я прочитал о весенней безопасности и JWT, и кажется, что он делает то же самое, но более защищенным, стандартизированным способом, плюс весенняя безопасность поставляется с Bcrypt, поэтому мой вопрос теперь в том, что я планирую изменить JWT и весеннюю безопасность. , актуальны ли мой сеанс JDBC и файл cookie?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
577
1

Ответы 1

Файл cookie - это всего лишь небольшая часть информации, которая отправляется с сервера и на сервер в запросе и ответе для сохранения информации, связанной с сеансом. Вы всегда можете игнорировать файлы cookie (не только при использовании JWT), если вы можете установить механизм, с помощью которого вы можете хранить и извлекать информацию, связанную с сеансом.

JWT используются для отправки и получения информации об аутентификации и авторизации, а также информации, связанной с сеансом НЕТ, то есть вы не можете изменить JWT, когда, скажем, пользователь добавляет товар в свою корзину.

Таким образом, вы можете использовать файлы cookie (или любой другой механизм) в дополнение к JWT для отслеживания информации о сеансе.

Обновлено: недавно я обнаружил, что отправка JWT в файле cookie - одна из известных передовых практик. Итак, теперь у вас есть лучшее из обоих миров.

Итак, как можно использовать сеансы с весенней безопасностью, будет ли аутентификация выполняться до сеанса или наоборот?

appzone_oto 02.05.2018 15:37

В какой момент времени вы начнете сеанс, полностью зависит от того, чего вы пытаетесь достичь. Если вы решите продолжить использование файлов cookie, вы можете просто использовать response.addCookie(new Cookie("key", value)). Тот факт, что вы используете Spring Security и JWT, не означает, что вам нужно изменить способ обработки файлов cookie ранее. Он все еще может оставаться прежним.

Pranjal Gore 02.05.2018 17:16

вот как я получаю свои файлы cookie из запроса request.getCookies (), поэтому можно ли использовать этот файл cookie и получить пользователя, которого я затем могу использовать в моем методе конфигурации (AuthenticationManagerBuilder, переопределенный классом безопасности Spring).

appzone_oto 02.05.2018 22:39

Насколько я понимаю, вы хотите получить информацию о пользователе (имя пользователя / пароль) из файлов cookie и проверить ее. В этом случае вам необходимо предоставить собственную реализацию UserDetailsService, в которой вы создаете объект User и передаете его в Spring Security. И в вашем методе configure попросите AuthenticationManagerBuilder использовать вашу индивидуальную реализацию UserDetailsService. Надеюсь, это ответит на ваш вопрос.

Pranjal Gore 03.05.2018 05:00

хорошо, поэтому у меня есть еще один вопрос: построитель аутентификации перекрестно ссылается на имя пользователя и Bcrytpassword на каждом защищенном URL-адресе, это может быть проблемой, потому что если пользователь вводит URL-адрес, который был защищен с помощью Spring Security, он должен быть перенаправляется на страницу loginForm каждый раз, как можно решить эту проблему, чтобы пользователь проходил аутентификацию со своим именем пользователя и паролем только один раз, а Spring Security использует эти данные на протяжении всего жизненного цикла приложения, не перенаправляя его всегда на Loginform?

appzone_oto 03.05.2018 11:32

Я предполагаю, что вы здесь используете JWT. Поэтому каждый раз, когда вы делаете запрос на защищенный URL-адрес, вам необходимо передать JWT в заголовке Authorization и схеме Bearer. Таким образом, система безопасности sprig знает, что пользователь был ранее аутентифицирован.

Pranjal Gore 03.05.2018 11:36

Позвольте нам продолжить обсуждение в чате.

appzone_oto 03.05.2018 11:51

Другие вопросы по теме