#java #tomcat #spring-security
Вопрос:
Я новичок в spring security и пытаюсь создать простой RestConstroller, который использует аутентификацию Ldap. Мое приложение имеет следующую структуру
- springapplication-servlet.xml (диспетчер)
- application-context.xml (корневой контекст)
- web.xml * загружает контекст приложения * определяет сервлет диспетчера для сопоставления /сводки URL-адресов
- RestController с сопоставлением запросов /сводкой
- SpringConfig с использованием аннотации @Configuration @EnableWebSecurity и расширяет WebSecurityConfigurerAdapter, в котором я объявил авторизацию с помощью
http.csrf().отключить(); http.authorizeRequests().mvcMatchers(«/summary»).permitAll().anyRequest().authenticated().and().httpBasic()
и аутентификация ldap
Я запускаю приложение с помощью Tomcat 8 и Java 8, и я получаю сообщение об ошибке, в котором говорится, что «springSecurityFilterChain» не найден и
Одним из решений, которое я пробовал, была попытка определить безопасность фильтра, но ошибка сохраняется и выбрасывает не найденный компонент вместе с «Пожалуйста, убедитесь, что Spring Security и Spring MVC настроены в общем контексте приложения».
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/summary</url-pattern>
</filter-mapping>
Большинство примеров, которые я нахожу в Интернете, используют приложение spring-boot, мне понадобится решение для моего приложения с помощью Tomcat
Спасибо, мы ценим любую помощь
Как было предложено в комментариях, я добавил web.xml фрагмент
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/application-context.xml </param-value> </context-param>
также фрагмент контекста приложения
<context:component-scan base-package="com.myapp"/>
<util:properties id="myProperties" location="classpath:myProps.properties"/>
Комментарии:
1. добавьте jar в путь к классу
2. Вам нужен
ContextLoaderListener
файл, который загружаетapplication-context.xml
и который также должен содержать ваши компоненты/конфигурацию безопасности. Этого не должно быть вspringapplication-servlet.xml
том, что должно быть загруженоDispatcherServlet
.3. Не уверен, что понимаю. мой web.xml содержит следующую информацию <контекст-парам> <контекст-парам><имя парама>Контекстная конфигурация<имя парама></имя парама> </имя парама><значение парама> /WEB-INF/application-context.xml <значение параметра></значение параметра> </значение параметра></параметр контекста>, у меня определен список загрузчиков контекста
4. @ScaryWombat что ты имеешь в виду? У меня все банки на месте