[SPRING] 예외 발생 : 'springSecurityFilterChain'이라는 bean을 정의하지 않았습니다.
SPRING예외 발생 : 'springSecurityFilterChain'이라는 bean을 정의하지 않았습니다.
나는 참고 자료에서 봄 보안을 배우고있다. 릴리스 3.1.2. 릴리스. 내가 보안을 설정했다는 것을 진술했다 : http 태그는 다음과 같다.
security-context.xml
<security:http auto-config="true">
<security:intercept-url pattern="/**" access="ROLE_USER"/>
</security:http>
을 포함한다.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:*-context.xml</param-value>
</context-param>
<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>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>security</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>security</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
security-servlet.xml
<context:component-scan base-package="com.pokuri.security.mvc.controllers"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/page/"/>
<property name="suffix" value=".jsp"/>
</bean>
하지만 응용 프로그램을 시작할 때이 예외가 발생합니다. 보안 구성을 제거하면 스프링 웹 응용 프로그램이 정상적으로 작동합니다. stackoverflow에서 같은 종류의 질문을했습니다. 그러나 운이 없다.
해결법
-
==============================
1.제 생각에는 스프링 보안을위한 XML 설정 파일이 웹 앱을 시작할 때로드되지 않는다는 것입니다.
제 생각에는 스프링 보안을위한 XML 설정 파일이 웹 앱을 시작할 때로드되지 않는다는 것입니다.
이 문제를 해결하려면 web.xml에서 모든 XML 구성 파일을 다음과 같이 지정해야합니다.
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-security.xml, /WEB-INF/applicationContext.xml</param-value> </context-param>
설정 파일이 classpath (WEB-INF 폴더가 아닌 폴더 또는 하위 폴더)에 있으면 다음과 같이 설정 파일 목록을 지정할 수 있습니다.
... <param-value> classpath:applicationContext.xml, classpath:spitter-security.xml </param-value> ...
또한 설정 파일을로드 할 특별한 리스너를 추가해야합니다.
<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>
-
==============================
2.Spring이 요청할 때 bean 정의를 applicationContext.xml에 추가했습니다.
Spring이 요청할 때 bean 정의를 applicationContext.xml에 추가했습니다.
<bean id="springSecurityFilterChain" class="org.springframework.web.filter.DelegatingFilterProxy"/>
-
==============================
3.web.xml을 추가하십시오.
web.xml을 추가하십시오.
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/root-context.xml, /WEB-INF/spring-security.xml</param-value> </context-param> <!-- Creates the Spring Container shared by all Servlets and Filters --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- filter declaration for Spring Security --> <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>/*</url-pattern> </filter-mapping>
-
==============================
4.도움이되는 경우, 필자는 패키지 중 하나의 이름을 변경했지만 Eclipse가 @ComponentScan 경로를 자동으로 업데이트하지 않으므로이를 변경해야합니다.
도움이되는 경우, 필자는 패키지 중 하나의 이름을 변경했지만 Eclipse가 @ComponentScan 경로를 자동으로 업데이트하지 않으므로이를 변경해야합니다.
@ComponentScan(basePackages = "com.package.spring")
from https://stackoverflow.com/questions/12123516/getting-exception-no-bean-named-springsecurityfilterchain-is-defined by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 트랜잭션과 hibernate.current_session_context_class (0) | 2018.12.10 |
---|---|
[SPRING] 봄 한정자 및 속성 자리 표시 자 (0) | 2018.12.10 |
[SPRING] JSR-303 @Valid 주석 (중첩 된 객체)이 작동하지 않음 (0) | 2018.12.10 |
[SPRING] Spring logging DEBUG 메시지를 비활성화하는 방법은 무엇입니까? (0) | 2018.12.10 |
[SPRING] @Foo 커스텀 어노테이션으로 모든 빈을 어떻게 찾을 수 있습니까? (0) | 2018.12.10 |