我有一个REST API,在Spring Boot中实现,与PostgreSQL和Spring Security集成在一起。所有工作均无缝进行。
现在,我通过使用@EnableJdbcHttpSession
并执行org.springframework.session.jdbc.schema-postgresql.sql
脚本来启用Spring Session JDBC。现在,我的会话存储在数据库中。很好。
我很快发现,我在spring_session
中有一堆记录,其中principal_name
列具有NULL
值。当匿名用户调用API时会发生这种情况(例如,尝试进行身份验证但凭据错误)。
我怎样才能使Spring只为经过身份验证/非匿名用户存储会话?
旁注:在SPRING_SECURITY_SAVED_REQUEST
表中我还得到了许多不需要的spring_session_attributes
记录,但是我可以通过配置Spring Security来禁用这些记录:
httpSecurity.requestCache().requestCache(new NullRequestCache());