csrf token
springboot 3.0.0的csrf token生成功能默认使用了XorServerCsrfTokenRequestAttributeHandler
(webflux, webmvc为XorCsrfTokenRequestAttributeHandler
)。该实现在每次生成和校验的时候,都对原始数据进行了异或运算。
这会导致cookie中的csrf token和attribute中的不同。
解决方案:配置增加:.csrfTokenRequestHandler(new ServerCsrfTokenRequestAttributeHandler())
,强制指定老版本。
默认尾部/兼容
老版本(包括6.0.0M4)默认设置的是兼容,既/a
和/a/
默认是相同的。升级到springboot 3.0.0之后,对应的spring-web版本6.0.2,默认设置了false。也就是在controller中的mapping设置了/a
,通过/a/
访问会404。如果有问题,需要删除原有的/
。
hibernate @Type注解
hibernate 6.0去除了@Type注解中的type属性。
之前我们用来强制指定UUID类型映射成VARCHAR,新版本可以使用@JdbcTypeCode(Types.VARCHAR)注解来实现相同功能。