Я пользуюсь, будьте уверены, с последней версией Java Java Spring.
Я пытаюсь смоделировать вызов для аутентификации с помощью метода post и тела json (contentType is application / json), но когда мой запрос перехватывается моим приложением java spring, тело пусто ... и мои методы аутентификации выдают 401 .. это поведение правильный. Но пустое тело не так.
Я вижу с помощью ngrep и некоторых функций с уверенностью, что все запросы выполнены правильно.
Когда я использую curl, postman или ajax из js client, у меня нет этой проблемы
@EnableAutoConfiguration
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class UserControllerImplTest {
@Test
public void testUserAuthenticateWitParams200() {
Map<String, Object> jsonAsMap = new HashMap<>();
jsonAsMap.put("email", "groschat.eu@gmail.com");
jsonAsMap.put("password", "groschat93**");
given().log().all()
.body(jsonAsMap)
.contentType("application/json; charset=UTF-8").
when()
.post(String.format("http://localhost:%s/api/users/authenticate", port))
.peek().
then()
.statusCode(is(200));
}
}
Вот лог из функции peek ():
Request method: POST
Request URI: http://localhost:53850/api/users/authenticate
Proxy: <none>
Request params: <none>
Query params: <none>
Form params: <none>
Path params: <none>
Headers: Accept=*/* Content-Type=application/json; charset=UTF-8
Cookies: <none>
Multiparts: <none>
Body:
{
"password": "groschat93**",
"email": "groschat.eu@gmail.com"
}
Вот запрос от инструмента dev внутри chrome
Заголовки запроса:
POST /api/users/authenticate HTTP/1.1
Host: back-spring.dev
Connection: keep-alive
Content-Length: 62
Origin: https://front.dev
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Content-type: application/json
Accept: */*
Referer: https://front.dev/
Accept-Encoding: gzip, deflate, br
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
Запрос полезной нагрузки:
{"email":"martinbryan.eu@gmail.com","password":"groschat93**"}