Как управлять Аутентификацией Firebase в проекте JavaEE? - PullRequest
0 голосов
/ 07 октября 2019

Я использую JavaEE и JSF в проекте для обработки некоторых данных. Я также использую Firebase в качестве механизма аутентификации, который также используется как часть проекта RestAPI. Это строки кода, используемые в AuthorizationFilter implements ContainerRequestFilter:

try {
            FirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdToken(token);
            account = new FirebaseAccount(decodedToken.getUid(), decodedToken.getName(), decodedToken.getEmail(),
                    decodedToken.getPicture());
            container.setProperty("account", decodedToken);
            request.setAttribute("account", account);
            System.out.println("successful login");
        } catch (FirebaseAuthException e) {
            e.printStackTrace();
            System.out.println("Token oauth2 not valid");
        }

. В качестве метода для входа в систему я использую эту собственную реализацию Firebase:

public boolean signInWithUsernameAndPassword(String email, String password, IFirebaseLoginHandler handler) {
    FirebaseLoginUsernameAndPasswordRequest request = new FirebaseLoginUsernameAndPasswordRequest(email, password);
    Unirest.config().setObjectMapper(new GsonObjectMapper());
    HttpResponse<JsonNode> reponse = Unirest.post(URL_SIGN_IN + API_LEY).body(request).asJson();
    Gson gson = new Gson();
    if (reponse.getStatus() == HttpStatus.SC_OK) {
        FirebaseLoginResponse loginResponse = gson.fromJson(reponse.getBody().toString(),
                FirebaseLoginResponse.class);
        handler.onSuccess(loginResponse);
        return true;
    } else {
        FirebaseLoginErrorPassword errorPassword = gson.fromJson(reponse.getBody().toString(),
                FirebaseLoginErrorPassword.class);
        handler.onError(errorPassword);
        return false;
    }
}

ПроблемаСамостоятельная реализация заключается в том, что я не обрабатываю токен обновления, поэтому через час истекает срок действия кода. Есть ли какая-либо библиотека Java, которую я могу использовать в своем проекте JSF? В любом случае, как я могу обработать механизм обновления токенов?

...