Я хочу создать библиотеку (назовем ее общая библиотека), в которую мне нужно включить классы из Spring Security.
Как включить Spring Security в качестве зависимости без запуска автоконфигурации?
Идея состоит в том, что Spring Security будет настраиваться другой библиотекой (называемой безопасная библиотека - также включает Spring Security).
Если в приложение включен только общая библиотека, тогда безопасность Spring не должна быть включена, но если включены обе библиотеки, общая библиотека и безопасная библиотека, то Spring Security включен и настроен с помощью безопасная библиотека.
Классы, которые мне действительно нужно включить:
org.springframework.security.core.context.SecurityContextHolder;
org.springframework.security.oauth2.provider.OAuth2Authentication;
org.springframework.security.oauth2.provider.OAuth2Request;
Кстати: я не нашел банку с OAuth2Authentication,
OAuth2Request и без автоконфигурации.
У меня были смешанные результаты. Как правильно отключить классы автоконфигурации? Само приложение или common-libray?
Что вы имеете в виду под «смешанными результатами»? Насколько мне известно, это стандартный способ отключения автоконфигурации.
Само приложение должно отвечать на этапе начальной загрузки за создание экземпляров и настройку компонентов. Само приложение - это то место, где это можно сделать. SpringBoot ведет себя аналогичным образом - например, если он обнаруживает конкретную банку в пути к классам, он предполагает, что вы хотите запустить банку, поэтому по умолчанию выполняет некоторую автоконфигурацию. Это поведение можно отключить, как показано в моем предыдущем комментарии.
@hovanessyan Я хотел бы иметь возможность включать общую библиотеку в приложение, не беспокоясь об отключении Spring Security в приложении. Это правильный подход, или я должен просто заявить, что «если вы включаете общую библиотеку, Spring Security идет вместе с ней» и, в конце концов, отключите ее, если хотите?
@MichalFoksa мне кажется, что вам нужно просто отделить модуль безопасности от общего пользования




Итак, если срабатывает автоконфигурация, я предполагаю, что это приложение с включенной загрузкой sping, и вы не пытаетесь создать библиотеку общей безопасности, не зависящую от Spring? Почему бы не отключить определенные классы автоконфигурации весенней загрузки, например @SpringBootApplication (exclude = org.springframework.boot.autoconfigure.security.SecurityAuto Configuration.class) ? Это не работает в вашем случае?