Проблема с десериализацией классов Spring SecurityJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема с десериализацией классов Spring Security

Сообщение Anonymous »

Я пытаюсь сделать снимок экземпляра аутентификации. (Это для запланированного задания Quartz.) Согласно документации, я регистрирую SecurityJackson2Modules в своем сопоставителе объектов. Это отлично работает как для сериализации, так и для десериализации, если я использую ванильный ObjectMapper. Однако если я использую автоматически настроенный Spring, я получаю исключение при десериализации из класса PreAuthenticatedAuthenticationToken, а именно в этом объекте:

Код: Выделить всё

{"@class":"org.springframework.security.core.authority.SimpleGrantedAuthority","authority":"ROLE_Corporate_CLIENT"}
В рабочем случае это правильно десериализуется в SimpleGrantedAuthority, а в нерабочем случае это приводит только к HashMap. Судя по всему, в обоих случаях зарегистрирован миксин SimpleGrantedAuthority, который должен обрабатывать этот фрагмент JSON, однако по какой-то причине он не срабатывает в случае автонастройки Spring.
Поэтому должно быть может быть какая-то принципиальная разница в способе настройки Spring и vanilla ObjectMapper. Проблема в том, что я понятия не имею, как отладить такого рода проблемы. Я попытался вручную зарегистрировать в ванильном картографе те же модули, что и в моем автоконфигурированном, но десериализация все равно продолжала работать. После этого у меня закончились идеи.
Вот явная конфигурация ванильного картографа:

Код: Выделить всё

        val modules = SecurityJackson2Modules.getModules(loader)
val mapper = ObjectMapper().registerKotlinModule()
mapper.registerModules(modules)
Показать конфигурацию сопоставителя Spring сложнее, потому что, очевидно, я не настраиваю его сам, поэтому лучшее, что я могу сделать, это показать соответствующие (я думаю) части сопоставителя из отладчик:
Изображение

Изображение


Подробнее здесь: https://stackoverflow.com/questions/784 ... ty-classes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»