У меня есть REST API, реализованный в Spring Boot, интегрированный с PostgreSQL и Spring Security.Все работает без проблем.
Теперь я включил Spring Session JDBC, используя @EnableJdbcHttpSession
и выполняя сценарий org.springframework.session.jdbc.schema-postgresql.sql
.Теперь мои сеансы хранятся в БД.Круто.
Вскоре я обнаружил, что у меня есть куча записей в spring_session
, где столбец principal_name
имеет значения NULL
.Это происходит, когда анонимный пользователь делает вызовы API (например, пытается аутентифицироваться, но учетные данные неверны).
Как я могу заставить Spring хранить сеансы только для аутентифицированных / неанонимных пользователей?
Примечание : я также получил много нежелательных SPRING_SECURITY_SAVED_REQUEST
записей в таблице spring_session_attributes
, но я смог отключить их, настроив Spring Security:
httpSecurity.requestCache().requestCache(new NullRequestCache());