Я использую Eclipse IDE для разработчиков корпоративных Java. Версия: 2019-03 (4.11.0), идентификатор сборки: 20190314-1200 - последняя версия Eclipse EE.
Я получаю сообщение об ошибке в IDE в строке кода, которая говорит:
Несколько маркеров на этой линии
Синтаксическая ошибка, вставьте ";" завершить
ReturnStatement
Синтаксическая ошибка, вставьте "}" для завершения блока
Я проверил все {и} и;. Они все на месте.
Если я вставлю ";" или "}", как указывает ошибка, появляются дополнительные ошибки, говорящие о том же.
Есть ли в Eclipse ошибка, о которой кто-нибудь знает?
Вот код, где происходит ошибка. Я пометил точную строку, в которой произошла ошибка, с комментарием «ошибка здесь»
@SuppressWarnings("unchecked")
public Authentication getAuthentication(HttpServletRequest request) throws ParseException, BadJOSEException, JOSEException {
String idToken = request.getHeader("Authorization");
if (null == idToken) {
// throw new CognitoException(NO_TOKEN_FOUND,
// CognitoException.NO_TOKEN_PROVIDED_EXCEPTION,
// "No token found in Http Authorization Header");
System.out.println("No token found in Http Authorization Header");
} else {
idToken = extractAndDecodeJwt(idToken);
JWTClaimsSet claimsSet = null;
claimsSet = configurableJWTProcessor.process(idToken, null);
if (!isIssuedCorrectly(claimsSet)) {
// throw new CognitoException(INVALID_TOKEN,
// CognitoException.INVALID_TOKEN_EXCEPTION_CODE,
// String.format("Issuer %s in JWT token doesn't match cognito idp %s",
// claimsSet.getIssuer(),jwtConfiguration.getCognitoIdentityPoolUrl()));
System.out.println("Issuer in JWT token doesn't match cognito idp");
}
if(!isIdToken(claimsSet)) {
// throw new CognitoException(INVALID_TOKEN,
// CognitoException.NOT_A_TOKEN_EXCEPTION,
// "JWT Token doesn't seem to be an ID Token");
System.out.println("JWT Token doesn't seem to be an ID Token");
}
String username = claimsSet.getClaims()
.get("cognito:username").toString();
@SuppressWarnings("unchecked")
List<String> groups = (List<String>) claimsSet.getClaims()
.get("cognito:groups");
List<String> grantedAuthorities = convertList(groups, group-> new
SimpleGrantedAuthority("ROLE_" + group.toUpperCase()));
User user = new User(username, "", grantedAuthorities);
return new CognitoJwtAuthentication(user, claimsSet, grantedAuthorities); // error here
}
}
Я заметил, что оператор return находится в другой области видимости (области действия оператора if) в пределах области действия метода. Похоже, что оператор return должен находиться вне этой внутренней области видимости. Интересно, это как-то связано с ошибкой?