У меня сейчас проблема, и я не нашел решения, даже после некоторых исследований.Я пытаюсь отправить имя пользователя и пароль через http.Проблема в том, что когда я отправляю такие символы, как «ç», «ã» или «á», я получаю что-то вроде Ã [], при аутентификации происходит сбой.Но если я отправлю '*', '/', '@', это будет нормально.Я покажу вам мой код:
Выполнение запроса с помощью RestTemplate:
String enc = sec.encrypt(password);
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
map.add("username", username);
map.add("password", password);
RestTemplate rt = new RestTemplate();
rt.getMessageConverters().add(0,new StringHttpMessageConverter(Charset.forName("UTF-8")));
// Prepare header
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
headers.set("username", username);
headers.set("password", password);
HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(map, headers);
HttpStatus response = null;
String url = "http://my url"
try {
ResponseEntity<DomainSistemas> rps = rt.exchange(url,
HttpMethod.POST, entity, DomainSistemas.class);
response = rps.getStatusCode();
ds = rps.getBody();
Получение запроса:
@RequestMapping(method = RequestMethod.POST, path = "/authentication")
public @ResponseBody ResponseEntity<Object> Authentication(
@RequestHeader(value = "username", required = false) String username,
@RequestHeader(value = "password", required = false) String password) throws IOException, NamingException {
Ldap ldap = new Ldap();
GenericResponse response = new GenericResponse();
String logPrefix = "[AuthenticationController]";
try {
if (!ldap.authentication(username, password)) {
throw new AuthenticationException();
}
response.setContent(transform.listEntityToListBean(getPermission.findPermission(username)));
return ResponseEntity.status(HttpStatus.OK).body(response);
Thx