У меня есть сервер аутентификации с пружинной защитой oauth2, сервер ресурсов (все еще пружинный) и приложение Angular для передней части.
Я использую угловую lib для обработки аутентификации.Я использую токены JWT.
Когда я вначале открываю угловое приложение и затем нажимаю кнопку «Вход», я перенаправляюсь на форму входа, которая является частью сервера аутентификации (сторона пружины).Когда я отправляю форму входа в систему, я аутентифицируюсь и перенаправляюсь обратно в угловую часть с токеном в URL (и другой информацией, nonce ...), затем угловая библиотека извлекает эту информацию, и аутентификация завершается.Пока все идет хорошо.
Но что, если пользователь получит прямой доступ к форме входа на сервере аутентификации?Я не смогу предоставить URL-адрес перенаправления.Я установил URL перенаправления по умолчанию после успешного входа в систему, например:
.formLogin()
.loginPage("/login")
.defaultSuccessUrl(env.getProperty("front.url"))
.failureUrl("/login?error=true")
.permitAll()
Но, очевидно, я перенаправлен обратно на угловую часть без токена, поэтому угловая библиотека не может выполнитьчасть аутентификации на угловой стороне, и пользователь не считается подключенным.
Тогда, конечно, если пользователь нажимает «логин», сервер аутентификации видит, что пользователь уже аутентифицирован на своей стороне, и немедленно предоставляеттокен, не показывая форму входа.Но это далеко от идеала:)
Есть ли способ справиться с делом?
Thx