有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSpringAOP:将参数传递到目标方法:paramsnull。为什么?

我已经创建了一个Spring方面来为GraphQLAPI进行授权。我的意图是让方面读取所有要传入的参数,验证用户,然后作为附加参数注入新的用户对象,然后调用原始目标方法。不幸的是,我所有的连接点参数和参数都是空的

方面方法 (正在调用,但joinPoint args和params为null)

@Around("@annotation(Authorize)")
public Object authorize(ProceedingJoinPoint joinPoint) throws Throwable {

    List<Object> arguments = Arrays.asList(joinPoint.getArgs()); // null[]
    if (userAuthenticated() == true) arguments.add(loggedInUser); // crash
        return joinPoint.proceed(arguments.toArray());
    } else {
        return null;
    }

}

为什么??我如何克服这一点

图形目标方法 (注意,我在方法params的末尾弹出了User)

@Authorize({Right.ORGANISATION_LIST, Right.ORGANISATION_VIEW})
@GraphQLQuery(name="partners")
public PartnersPage listPartners(@GraphQLArgument(name = "pageNo") Integer pageNo, @GraphQLArgument(name = "pageSize") Integer pageSize, @GraphQLArgument(name="sortBy") String sortBy, @GraphQLArgument(name="searchBy") String searchBy, @GraphQLArgument(name="searchRegex") String searchRegex, User user) {

    PartnersPage partnersPage = new PartnersPage();
    Query q = QueryHelper.build(pageNo, pageSize, sortBy, searchBy, searchRegex);
    partnersPage.setOrganisations(mongoTemplate.find(q, Organisation.class));

    return partnersPage;

}

共 (0) 个答案