Кодирование / декодирование некоторых специальных символов с пружиной - PullRequest
0 голосов
/ 08 апреля 2019

У меня сейчас проблема, и я не нашел решения, даже после некоторых исследований.Я пытаюсь отправить имя пользователя и пароль через 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

...