小编tim*_*ham的帖子

@RequestBody @Valid SomeDTO 具有枚举类型的字段,自定义错误消息

我有以下 @RestController

@RequestMapping(...)
public ResponseEntity(@RequestBody @Valid SomeDTO, BindingResult errors) {
//do something with errors if validation error occur
}

public class SomeDTO {
   public SomeEnum someEnum;
}
Run Code Online (Sandbox Code Playgroud)

如果 JSON 请求是{ "someEnum": "valid value" },则一切正常。但是,如果请求是{ "someEnum": "invalid value" },则只返回错误代码 400。

如何捕获此错误,以便我可以提供自定义错误消息,例如“someEnum 的值必须为 A/B/C”。

java validation rest spring

9
推荐指数
2
解决办法
1万
查看次数

REST API 访问控制从访问令牌与路径参数中提取主题

在 OAUTH 中保护 REST API 的总体思路是使用 Authorization Bearer < access token> 标头,通常是 JWT,其中包含有关主题的信息,即。sub: u1 其中u1是数据库中的userId。

有了这样的访问令牌,客户端应用程序就可以访问不同的资源。假设一个用户有很多车,有很多船,等等......所以,以RESTful方式,/users返回所有用户,/users/:u1返回用户u1的数据,返回用户/users/:u1/cars/:c1汽车的数据,返回用户船的数据等。c1u1/users/:u1/boats/:b1b1u1

我的问题是关于u1. 不应该u1从 JWT 访问令牌中提取,因为我们知道我们可以信任 JWT?理论上,应用程序可以使用为 user 颁发的 JWT u1,但请求访问/users/:u2应被禁止。

我们可以使其/users/:u1不可用,并强制客户端应用程序调用并从 JWT 中/users提取。sub但是,调用/users返回数据会u1破坏 RESTful 模式及其优点(即 http 缓存)。

正确的做法是什么?

这可能是authorization关于 REST api 问题的框架。JWT只能寻址authentication而已。

security rest authorization restful-authentication restful-architecture

4
推荐指数
1
解决办法
1221
查看次数