Ответ заключается в том, что все имена классов должны происходить из надежного источника.
Единственный надежный источник - это жестко запрограммированная строка в файле класса.
Ничего не читается из файлов свойств, нет коллекции, которую вы создаете и передаете в механизм проверки.
Он должен видеть жестко запрограммированную константу "com.dang.this.is.strict.ClassName:" при загрузке.
Белый список жестко закодированных строк.
Вы можете иметь отличный код проверки, чтобы убедиться, что ничего плохого не происходит, но он не пройдет, так как не жестко закодированная строка. В этой ситуации вы смягчаете и предоставляете объяснения и надеетесь, что этого будет достаточно для лиц, которые рассматривают результаты.
Они говорят,
Применение строгой проверки ввода с использованием белых или косвенных
выбор, чтобы убедиться, что пользователь выбирает только допустимые классы
или код.
Я просто не осознавал, что белые списки были строго строковыми константами в классах. Моя ошибка заключалась в том, что я мог создать белый список в коде во время выполнения. Что иногда мне нужно делать, так что я буду держать свой валидатор и требовать смягчения.