Spring AOP: проверка поля не работает - PullRequest
0 голосов
/ 06 июня 2018

У меня есть класс ресурсов Джерси, который использует проверку поля для параметра заголовка.

@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. Как я могу заставить проверку поля работать?

...