Мы создали приложение, которое имитирует учебник шаблонов Spring Security - API Gate Pattern (https://spring.io/guides/tutorials/spring-security-and-angular-js/#_the_api_gateway_pattern_angular_js_and_spring_security_part_iv). Единственное отличие заключается в том, что мы используем базу данных MySQL, а не Redis.Spring Security - шаблон шлюза api - ошибка?
Использование localhost: 8080 в качестве корня, у нас есть localhost: 8080/login (страница входа), localhost: 8080/ui (клиент jQuery) и localhost: 8080/api (успокаивающие веб-службы, бизнес-логика и т. Д.)
Мы находим обработку сеанса и переадресацию на различные объекты, как и следовало ожидать. Значение сеанса создается как ожидалось, пересылка происходит так, как ожидалось, и т. Д. Существует одно исключение. Если я вхожу в систему, а затем выйдите из системы, а затем перейдите прямо к localhost: 8080/ui переведет меня на страницу входа. Вы входите в систему, и он перенаправляет вас обратно на локальный хост: 8080/ui, но отобразит «ACCESS DENIED»!
После отслеживания сеансов в базе данных и клиенте я обнаружил, что в базе данных есть два сеанса. Один с разрешениями и один без. Клиент сохраняет один без!
Неужели кто-нибудь еще сталкивается с этой проблемой? Есть ли способ обойти это?
Вот список шагов, которые я прошел, отслеживание сеансов базы данных и проверка клиента.
session_id principal_name Client ------------------------------------------------------------ 1) go to localhost:8080 9229045c-27e0-410a-8711-45c56576d647 - X 2) login 2275db1c-fca4-4a2f-be73-e440599499d6 root X 3) logout cc917e68-b1c0-46a4-bbe3-6705ccf7a5fa - X 4) go to localhost:8080/ui --> forwards to localhost:8080/login cc917e68-b1c0-46a4-bbe3-6705ccf7a5fa - X 5) login -> forwards to localhost:8080/ui -> Access Denied 90d7931d-b265-42e2-a225-286bcf7d159c - X
d2fae0ac-9cf9-4287-8e38-51f64b0ab28d root
Прохладный, рад, что вы нашли проблему! Обязательно отметьте правильный ответ здесь –