Пользовательская аннотация Spring не работает - PullRequest
0 голосов
/ 03 сентября 2018

Я создал собственный класс аннотаций SecurityAnnotation

@Constraint(validatedBy = SecurityAnnotationValidator.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface SecurityAnnotation {

    EmployeeRoles[] employeeRoles();

    String message();

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}

И у меня есть класс валидатора Constraint

public class SecurityAnnotationValidator implements ConstraintValidator<SecurityAnnotation, String> {

private EmployeeRoles[] employeeRoles;

@Autowired
EmployeeService employeeService;

@Override
public void initialize(SecurityAnnotation securityAnnotation) {
    employeeRoles = securityAnnotation.employeeRoles();
}

@Override
public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
    //logic goes here
    return false;
}
}

В моем контроллере я аннотировал метод

@RequestMapping( method = RequestMethod.POST)
@SecurityAnnotation(employeeRoles = {EmployeeRoles.HR}, message = "Invalid User")
public HrmsResponse create(@Valid @RequestBody CreateEmployee createEmployee){
    Employee employee = employeeService.createEmployee(createEmployee);
    return HrmsResponse.buildSuccessResponse(employee);
}

Но функция isValid моей аннотации не вызывается, гуглится и не находит никаких результатов. Любая помощь будет оценена. Заранее спасибо.

...