Как я могу устранить несоответствия имен прокси-классов, которые нарушают ACL Spring Security @PostFilter?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу устранить несоответствия имен прокси-классов, которые нарушают ACL Spring Security @PostFilter?

Сообщение Anonymous »

Я медленно обновляю свой очень старый проект до современных версий библиотек. Ранее я достиг следующих версий:
  • Spring 6.0.13

    spring-context
    spring-context-support
  • spring-orm
  • spring-webmvc
    < /ul>
  • Spring Security 6.1.4
  • Спящий режим 6.2.13.Final
Я не использую/еще не перенес для загрузки Spring или данных Spring.
Я начал обновление до последней версии и столкнулся с проблемой, из-за которой прокси-классы Hibernate, созданные ByteBuddy, не распознаются в моем поиске ACL, поэтому мой @ Постфильтр не удается — в таблицах ACL хранятся исходные имена классов, но прокси-серверы времени выполнения не совпадают. (Контекст см. https://github.com/spring-projects/spri ... sues/21111.)
В настоящее время я не понимаю, почему эта проблема не получила более широкого распространения. сообщил. Используют ли большинство пользователей одну и ту же модель ACL или @PostFilter (или полагаются на встроенную поддержку Spring Data JPA) или есть другой предпочтительный обходной путь?
В настоящее время я использую обходной путь: https://github.com/spring-projects/spri ... -453468521 Я скопировал и исправил Spring ObjectIdentityImpl безопасности в мою кодовую базу (сохраняя исходный пакет), чтобы логика обнаружения прокси работала правильно. Однако в долгосрочной перспективе это не идеальное решение, поскольку мне придется обновлять патч с каждым выпуском Spring Security. Кроме того, я получаю предупреждение о сборке:

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

[WARNING] org.springframework.security.acls.domain.ObjectIdentityImpl scanned from multiple locations:
file:///…/target/classes/org/springframework/security/acls/domain/ObjectIdentityImpl.class,
jar:file:///…/spring-security-acl-6.4.2.jar!/org/springframework/security/acls/domain/ObjectIdentityImpl.class
Я изучаю несколько альтернатив:
Перехожу на использование Spring Data:
Я слышал это могло бы обойти некоторые из этих проблем, но мне неясно, полностью ли это устраняет несоответствие или это повлияет на саму модель ACL. Конфигурация acl на уровне объекта моего домена очень старая, основанная на: http://krams915.blogspot.fr/2011/01/spr ... orial.html
Используя обходной путь в моем коде, действуйте по-другому, чтобы избежать проблемы.
Как?
Разветвление ACL Spring Security:
Создавайте и используйте исправленный артефакт Maven (например, версия 6.4.2-patched1), исправляющий обнаружение прокси-сервера.
Пользовательская стратегия обнаружения прокси-сервера:
Реализация пользовательской ObjectIdentityRetrievalStrategy (или аналогичный), который отменяет прокси-классы, прикрепите его к AclPermissionEvaluator и AclPermissionCacheOptimizer, гарантируя, что всегда используется правильный пользовательский класс. Однако я не уверен, что этот подход позволит отменить проксирование в других случаях, которые могут запускать запросы к базе данных в обход полезности прокси.
Отключение прокси вручную в DAO:< /strong>
Интегрировать логику отмены проксирования в мой уровень доступа к данным, но это кажется беспорядочным и подверженным ошибкам.
Мой вопрос: какой самый надежный и удобный в обслуживании подход к решению проблемы? имя класса прокси несоответствие, чтобы поиск ACL (и, следовательно, @PostFilter) работал правильно?
Будем признательны за любые идеи или альтернативные стратегии для обработки развертывания прокси-сервера в этом контексте!

Подробнее здесь: https://stackoverflow.com/questions/793 ... ity-acl-po
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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