Хобрук: Ваш путь к мастерству в программировании

Безопасность Spring Не определен bean-компонент с именем «CustomAuthenticationProvider»

Я хочу получить весеннюю форму аутентификации безопасности. Здесь часть файла spring-security.xml

<bean id="authenticationFilter" class="com.portal.framework.web.security.CustomAuthenticationFilter">
        <property name="authenticationManager" ref="authenticationManager" />
        <property name="filterProcessesUrl" value="/login/validate" />
        <property name="usernameParameter" value="usernameOrEmail" />
        <property name="passwordParameter" value="password" />
        <property name="authenticationSuccessHandler" ref="restAuthenticationSuccessHandler" />
        <property name="authenticationFailureHandler" ref="restAuthenticationFailureHandler" />

    </bean>

    <authentication-manager alias="authenticationManager" xmlns="http://www.springframework.org/schema/security">
        <authentication-provider ref="customAuthenticationProvider" />
    </authentication-manager>

Я получил ошибку: не определен bean-компонент с именем «customAuthenticationProvider».

Разрешение bean-компонентов выполняется конфигурацией Java следующим образом:

@Configuration
@ComponentScan(basePackages = {"com.portal"})
public class MainConfiguration {

    @Bean
    public CustomAuthenticationProvider customAuthenticationProvider() {
        return new CustomAuthenticationProvider();
    }
}

Есть ли проблемы с этой конфигурацией?


Ответы:


1

Проблема решилась заменой

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/someXmlfile.xml</param-value>
    </context-param>

с

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        com.portal.configuration.IntegrationServerWebConfig
    </param-value>
</context-param>

И определение класса:

@Configuration

@ImportResource({
    "classpath:/WEB-INF/mvc-dispatcher-servlet.xml",
    "classpath:/WEB-INF/spring-servlet.xml"})

@ComponentScan(basePackages = {"com.portal"})
public class IntegrationServerWebConfig {
}
02.03.2014

2

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

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd">

 <context:component-scan base-package="org.example"/>

</beans>
02.03.2014
Новые материалы

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

Ториго  — революция в игре Го
Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

Математика и интуиция - Часть 1
У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..