Включить Spring Security как зависимость без автоматической настройки

Я хочу создать библиотеку (назовем ее общая библиотека), в которую мне нужно включить классы из 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 и без автоконфигурации.

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

hovanessyan 20.03.2018 20:59

У меня были смешанные результаты. Как правильно отключить классы автоконфигурации? Само приложение или common-libray?

Michal Foksa 20.03.2018 21:10

Что вы имеете в виду под «смешанными результатами»? Насколько мне известно, это стандартный способ отключения автоконфигурации.

zero01alpha 20.03.2018 21:22

Само приложение должно отвечать на этапе начальной загрузки за создание экземпляров и настройку компонентов. Само приложение - это то место, где это можно сделать. SpringBoot ведет себя аналогичным образом - например, если он обнаруживает конкретную банку в пути к классам, он предполагает, что вы хотите запустить банку, поэтому по умолчанию выполняет некоторую автоконфигурацию. Это поведение можно отключить, как показано в моем предыдущем комментарии.

hovanessyan 20.03.2018 22:06

@hovanessyan Я хотел бы иметь возможность включать общую библиотеку в приложение, не беспокоясь об отключении Spring Security в приложении. Это правильный подход, или я должен просто заявить, что «если вы включаете общую библиотеку, Spring Security идет вместе с ней» и, в конце концов, отключите ее, если хотите?

Michal Foksa 20.03.2018 22:16

@MichalFoksa мне кажется, что вам нужно просто отделить модуль безопасности от общего пользования

zero01alpha 21.03.2018 16:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
6
159
0

Другие вопросы по теме