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) 个答案