У меня есть класс ресурсов Джерси, который использует проверку поля для параметра заголовка.
@Controller
@RequiredArgsConstructor
public class Resource {
@Min(value = 0)
@HeaderParam("id")
private int id;
@HeaderParam("Authorization")
private String header;
@Authenticate
public void get() {
}
}
Затем я создаю аспект, который указывает на аннотацию @Authenticate.
public class Aspect {
@Before("@annotation(Authenticate)")
public void doAuthenticate() {
}
}
Проблема заключается в том, чточто после создания аспекта проверка поля для идентификатора больше не работает (передайте -1, поскольку заголовок идентификатора не нарушит ограничение).
Я предполагаю, что причина в том, что поскольку Spring AOP использует CGLIB в качестве прокси, он не заполняет поля при создании прокси, поэтому значение по умолчанию передавалось валидации, а затем после полученияиз-за Аспекта, это уже вне фазы проверки, следовательно, проверка не работает.
Итак, мои вопросы: 1. Правильно ли я понимаю?2. Как я могу заставить проверку поля работать?