java .lang.IllegalArgumentException: недопустимое исключение base64 символ 2e исключение после перенаправления Facebook oauth в весеннюю загрузку - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь интегрировать логин Facebook и Google в существующий логин JWT, используя spring-boot, spring-boot-starter-oauth2-client и spring-boot-starter-security. После перенаправления из диалога Facebook. я сталкиваюсь с проблемой: java.lang.IllegalArgumentException: Illegal base64 character 2.

Потенциальная причина с этим кодом.

public OAuth2AuthorizationRequest loadAuthorizationRequest(HttpServletRequest request) {
return CookieUtils.getCookie(request, "oauth2_auth_request")
        .map(cookie -> CookieUtils.deserialize(cookie, OAuth2AuthorizationRequest.class))
        .orElse(null);

public class CookieUtils {

public static Optional<Cookie> getCookie(HttpServletRequest request, String name){
    Cookie[] cookies = request.getCookies();

    if(cookies != null && cookies.length > 0) {
        for(Cookie cookie: cookies) {
            return Optional.of(cookie);
        }
    }

    return Optional.empty();
}

public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) {
    Cookie cookie = new Cookie(name, value);
    cookie.setPath("/");
    cookie.setHttpOnly(true);
    cookie.setMaxAge(maxAge);
    response.addCookie(cookie);
}

public static void deleteCookie(HttpServletRequest request, HttpServletResponse response, String name) {
    Cookie[] cookies = request.getCookies();
    if(cookies != null && cookies.length > 0) {
        for(Cookie cookie: cookies) {
            if(cookie.getName().equals(name)) {
                cookie.setValue("");
                cookie.setPath("/");
                cookie.setMaxAge(0);
                response.addCookie(cookie);
            }
        }
    }
}

public static String serialize(Object object) {
    return Base64.getUrlEncoder().encodeToString(SerializationUtils.serialize(object));
}

public static <T> T deserialize(Cookie cookie, Class<T> cls) {
    return cls.cast(SerializationUtils.deserialize(Base64.getUrlDecoder().decode(cookie.getValue())));
}

}

// Traceback Exception

java.lang.IllegalArgumentException: Illegal base64 character 2e
    at java.util.Base64$Decoder.decode0(Base64.java:714)
    at java.util.Base64$Decoder.decode(Base64.java:526)
    at java.util.Base64$Decoder.decode(Base64.java:549)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...