老师,登录出现了点问题

来源:3-11 API安全机制之登录

进击的中华田园犬

2019-10-08

访问
https://localhost:8080/users/login?username=hello&password=1
报错信息

{"time":1570506200689,"message":"Required request body is missing: public void com.anycl.auth.user.UserController.create(com.anycl.auth.user.UserInfo,javax.servlet.http.HttpServletRequest)"}

controller代码‘

@GetMapping("/login")
    public void login(@RequestBody @Validated UserInfo user, HttpServletRequest request) {
        UserInfo info = userService.login(user);
        request.getSession().setAttribute("user", info);
    }

service代码

@Override
    public UserInfo login(UserInfo info) {
        UserInfo result = null;
        User user = userRepository.findByUsername(info.getUsername());
        if (user != null && SCryptUtil.check(info.getPassword(), user.getPassword())) {
            result = user.buildInfo();
        }
        return result;
    }
写回答

1回答

JoJo

2019-10-08

你的Controller的user参数加了@RequestBody注解,这个注解要求请求中的数据应该以Json格式放在请求体body里,而get请求不支持这种。所以只要把这个注解去掉就可以了。

0
1
进击的中华田园犬
非常感谢!
2019-10-10
共1条回复

Spring Cloud微服务安全实战 可落地的安全方案

从API到复杂微服务场景,实战部署可落地的安全方案。

1029 学习 · 370 问题

查看课程