如何在dto属性上使用SafeHtml注释?

问题描述 投票:0回答:1

我有一个dto,取自另一个API(反编译类),并且dto一个字符串字段被标记为SafeHtml,以防止用户注入HTML脚本。

@NotNull
@SafeHtml(
    whitelistType = WhiteListType.NONE,
    groups = {Default.class}
)
@ApiModelProperty(
    value = "The label of customer",
    required = true
)
private String label;

但是当我通过邮递员或从前端-e.g发送请求时,它仍接受此输入并执行。

这里看来有什么不对?其他工作示例是项目的自己的dto类,但在这个例子中,这个dto是来自另一个api的反编译类,所以它可能是它的原因吗? (我不这么认为,因为这个dto的api也接受了它)所以有什么不对?

或者只是指定SafeHtml还不够,我还需要做更多的事情吗?

编辑:我的控制器是:

<script>alert('blabla')</script>

请注意:如果我将safehtml放在我的模型类上,它可以工作,但我不想要它。我想立即拒绝请求,所以我需要在dto类上禁用它。

java spring rest api dto
1个回答
1
投票

如上所述,约束注释是“按需”验证的。 在您的情况下,您必须添加 @PostMapping("customer/save") @ApiOperation("Adds customer") public ResponseEntity<CustomerDto> saveCustomer( @ApiParam("Customers to save") @RequestBody CustomerDti customerDto) { return ResponseEntity.ok(customerService.saveCustomer(customerDto); } 注释以使请求有效:

@Valid
© www.soinside.com 2019 - 2024. All rights reserved.