错误的错误错误,指出要插入“;”和“}”在Eclipse

时间:2019-06-15 23:51:48

标签: java eclipse syntax-error

我正在使用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语句应该在该内部范围之外。我想知道这是否与错误有关?

1 个答案:

答案 0 :(得分:0)

在第一个if条件下,您没有从我看到的内容中返回任何内容,这将导致问题,因为您最终将不返回任何内容,而在此处应返回“身份验证”。

您之前的“}”使用不正确,请更正它以使其更清晰!