Я пытаюсь настроить весенний глобальный метод безопасности с помощью режима консультаций AspectJ, поэтому я могу использовать аннотации @PreAuthorize
во всех аннотированных классах @Configurable
. Это моя ява конфиги:Весенняя обувь + Весенняя безопасность с AspectJ не работает
@Configuration
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true, mode = AdviceMode.ASPECTJ)
public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration
и:
@EnableCaching
@SpringBootApplication
@EnableSpringConfigured
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ)
@EnableLoadTimeWeaving(aspectjWeaving = EnableLoadTimeWeaving.AspectJWeaving.ENABLED)
public class WebApplication extends WebMvcConfigurerAdapter
Это мой @Configurable
класс:
@Configurable
public class Entity {
@PreAuthorize("hasPermission(this, 'publish')")
public void method() { }
}
Я также добавил пружинные-безопасности-аспекты, как зависимость. Из бревен AspectJ я могу ясно видеть, что Spring безопасность аспекты, связанная применяется на моих @Configurable
классах, однако, как только я создаю экземпляр этих классов я получаю это исключение:
Post-processor tried to replace bean instance of type [com.example.Entity] with (proxy) object of type [com.sun.proxy.$Proxy130] - not supported for aspect-configured classes!
Я использую пружинные загрузки версию 1.2.1, следовательно, весенняя версия безопасности - 3.2.5. Это, кажется, ошибка, которая обсуждалась здесь: Spring Security AspectJMode with @EnableGlobalMethodSecurity not working
Однако эта ошибка не должна влиять на мою версию весенней безопасности ... Существует ли какое-либо обходное решение для этой проблемы?
Не могли бы вы подробно рассказать о том, как отключить автоконфигурацию и компоненты, которые вы должны были настроить вручную? Я пытаюсь заставить это работать самостоятельно и сталкиваться с тем же сообщением об ошибке с Spring Boot и AspectJ. –