我正在使用Eclipse IDE for Enterprise Java Developers版本:2019-03(4.11.0),Build ID: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语句应该在该内部范围之外。我想知道这是否与错误有关?
答案 0 :(得分:0)
在第一个if条件下,您没有从我看到的内容中返回任何内容,这将导致问题,因为您最终将不返回任何内容,而在此处应返回“身份验证”。
您之前的“}”使用不正确,请更正它以使其更清晰!