Когда мне приходилось использовать C как часть более крупного проекта в школе, именно умение правильно использовать gdb (то есть вообще) приводило к прогнозированию, кто завершит свой проект, а кто - нет. Да, если что-то сходит с ума, и у вас есть тонны ошибок, связанных с указателями и памятью, GDB будет показывать странную информацию, но даже зная, что может указать людям правильное направление.
Также напомним, что C - это не C ++, Java, C # и т. Д. - хорошая идея. Чаще всего это происходит, когда вы видите, что кто-то рассматривает char * как строку в C ++.
Диспетчер аутентификации использует всех провайдеров аутентификации для аутентификации токенов аутентификации, которые он должен аутентифицировать.
Фильтр обработки аутентификации просто добавляет токен (пароль имени пользователя). Другие фильтры тоже добавляют токены. Например, AnonymousProcessingFilter.
Идея состоит в том, чтобы отделить генерацию токена от аутентификации токена. Таким образом, вы можете легко реализовать такие вещи, как аутентификация по нескольким источникам.
Обычный случай - один провайдер на один генератор токенов.