}
@AroundInvoke
public Object aroundInvoke(InvocationContext context) throws Exception {
final List<Role> roles = authenticationService.getRoles();
final RequireRoles annotation = getRequiredRoleAnnotation(context.getTarget().getClass(), context.getMethod());
if (hasAllRoles(roles, annotation.value())) {
return context.proceed();
} else {
throw new SecurityException("unauthorised access");
}
}