Весенняя загрузка AzureAD AADAuthenticationFilter проверяет наличие недопустимого эмитента. Как перезаписать или настроить это для другого эмитента? - PullRequest
4 голосов
/ 26 марта 2019

Использование Azure Ad Spring Starter 2.1.6. с AADAuthenticationFilter https://github.com/Microsoft/azure-spring-boot, код переходит к buildUserPrincipal, в рамках которого происходит вызов эмитента проверки. По умолчанию отображается ниже. Мой эмитент https://login.microsoftonline.com/uuid/v2.0 не по умолчанию, поэтому он выдает ошибку, как я могу перезаписать или настроить это для проверки моего эмитента?

private ConfigurableJWTProcessor<SecurityContext> getAadJwtTokenValidator(JWSAlgorithm jwsAlgorithm) {
    final ConfigurableJWTProcessor<SecurityContext> jwtProcessor = new DefaultJWTProcessor<>();

    final JWSKeySelector<SecurityContext> keySelector =
            new JWSVerificationKeySelector<>(jwsAlgorithm, keySource);
    jwtProcessor.setJWSKeySelector(keySelector);

    jwtProcessor.setJWTClaimsSetVerifier(new DefaultJWTClaimsVerifier<SecurityContext>() {
        @Override
        public void verify(JWTClaimsSet claimsSet, SecurityContext ctx) throws BadJWTException {
            super.verify(claimsSet, ctx);
            final String issuer = claimsSet.getIssuer();
            if (issuer == null || !issuer.contains("https://sts.windows.net/")
                    && !issuer.contains("https://sts.chinacloudapi.cn/")) {
                throw new BadJWTException("Invalid token issuer");
            }
        }
    });
    return jwtProcessor;
}
...