Springboot controller login

207
28 октября 2017, 15:01

У меня написан обычный метод для контроллера:

@RequestMapping(value = "/login", method = RequestMethod.POST)
public ResponseEntity<String> login(@RequestBody User u)throws ServletException {
    String jwtToken = "";
    String email = u.getEmail();
    String password = u.getPassword();
    //checks
    jwtToken = Jwts.builder().setSubject(email).claim("roles", "user").setIssuedAt(new Date())
            .signWith(SignatureAlgorithm.HS256, "secretkey").compact();
    return new ResponseEntity<String>(jwtToken, HttpStatus.OK);
}

И он правильно работает, когда приходят данные в следующем формате:

{"email": "example@gmail.com", "password": "123456"}

Меня интересует вопрос, что нужно сделать, чтобы принять правильно следующий запрос:

{"credentials": {"email": "example@gmail.com", "password": "123456"}}

Заранее спасибо!

Answer 1

Надо создать сущность, у которой будет поле типа User, имя поля должно быть credentials.

class Credentials{
     User credentials;
}

И тогда ваш метод должен принимать Credentials

public ResponseEntity<String> login(@RequestBody Credentials u)throws ServletException 
READ ALSO
Сокращение кода String в if

Сокращение кода String в if

У меня имеется следующее "meow (вопрос) - wow (ответ)И так далее" Так вот, можно ли сократить данный код?

168
Доступ к классам в корневой папке проекта

Доступ к классам в корневой папке проекта

Имеется стандартная архитектура Maven проектаВ папке src/main/java у меня есть класс Guy

167
Как сделать цикл Java? [требует правки]

Как сделать цикл Java? [требует правки]

Есть вот такое задание

192
Создание каталога и файла с кириллицей в именах

Создание каталога и файла с кириллицей в именах

Как в Java создать каталог и файл с кириллицей в именах? Например:

182