Более быстрый способ аутентификации токена Congnito JWT с использованием JAVA - PullRequest
0 голосов
/ 03 июля 2019

В настоящее время я делаю следующее

String region = "us-east-1";
String poolID = "us-east-1_whatever";

public Boolean valid() {
    try {
        String cognitoUrl = String.format("https://cognito-idp.%s.amazonaws.com/%s/.well-known/jwks.json", region, poolID);
        JwkProvider provider = new UrlJwkProvider(new URL(cognitoUrl));
        // got the value from the cognito url
        Jwk jwk = provider.get("value");
        RSAPublicKey publicKey = (RSAPublicKey) jwk.getPublicKey();
        Algorithm algorithm = Algorithm.RSA256(publicKey, null);
        String iss = String.format("https://cognito-idp.%s.amazonaws.com/%s", region, poolID);
        JWTVerifier verifier = JWT.require(algorithm).withIssuer(iss).build();
        verifier.verify(token);

    } catch (Exception err) {
        return false;
    }
    return true;
}

, но это кажется очень медленным.как я могу проверить токен быстрее?Я использую

compile group: 'com.auth0', name: 'jwks-rsa', version: '0.3.0'
compile 'com.auth0:java-jwt:3.8.1'

1 Ответ

0 голосов
/ 04 июля 2019

Amazon рекомендует использовать общеизвестный URL-адрес JWKS каждый раз, как указано в их репозитории поддержки .

Кэширование не рекомендуется, поскольку значение может быть изменено.Следовательно, я бы порекомендовал продолжить ваш текущий подход для обеспечения той же функциональности с наилучшей безопасностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...