You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot是否默认过滤请求中password字段?如何针对端点禁用?

问题根源:不符合JavaBean规范的Setter方法导致password字段无法绑定

这不是Spring默认过滤password字段的问题,核心原因是你的Account类中setPassword方法不符合JavaBean的Setter规范,导致Jackson(Spring默认的JSON序列化/反序列化库)无法正确完成字段绑定。

问题定位

查看你的Account类代码:

public String setPassword(String password) {
    return password;
}

标准的JavaBean Setter方法需要满足两个条件:

  • 返回值为void
  • 方法内部对类的成员变量完成赋值

你的setPassword方法不仅没有给this.password赋值,还返回了String类型,Jackson无法识别这是password字段的Setter方法,自然无法将请求中的password值绑定到对象上,最终导致该字段为null。

修复方案

将Account类中的setPassword修改为标准Setter:

public void setPassword(String password) {
    this.password = password;
}

同时,你的confirmPassword和test字段目前仅为public成员变量,没有对应的Setter方法,虽然Jackson可以直接访问public字段,但更规范的做法是将成员变量设为private,并添加标准的Getter/Setter方法,避免后续出现类似问题。

额外说明

  • Spring本身不会默认过滤password请求字段,你之前了解到的相关内容大概率是Spring Security中对密码的加密、参数隐藏等安全处理逻辑,和本次请求参数绑定无关。
  • 推荐使用Lombok的@Data注解自动生成符合规范的Getter/Setter方法,减少手动编写代码的错误率。

内容的提问来源于stack exchange,提问作者floriank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 07:40:15