2016-06-29 1 views
0

Spring MVC 웹 응용 프로그램에서 Spring 보안을 구현하려고합니다. 내가 페이지를로드하려고 지금까지 한 번에 추가 할 때 내가 얻을 404 오류 서버와 응용 프로그램은 라이브에도 불구하고, 페이지했던 일 이전에 또한, 부하에 다음과 같은 오류 밖으로 Tomcat 서버 인쇄 :"springSecurityFilterChain '이라는 bean이 정의되지 않았습니다."Java Config Spring security

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1095) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:277) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1097) 
    at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:326) 
    at org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:236) 
    at org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:194) 
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:109) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4689) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5329) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

의 SecurityConfig :

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; 
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; 
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; 

@EnableWebSecurity 
public class SecurityConfig { 

    // @formatter:off 
    @Autowired 
    public void configureGlobal(
      AuthenticationManagerBuilder auth) throws Exception { 
     auth 
      .inMemoryAuthentication() 
       .withUser("user").password("password").roles("USER"); 
    } 
    // @formatter:on 
} 

WebApplicationInitializer :

import org.springframework.core.annotation.Order; 
import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer; 

/** 
* No customizations of {@link AbstractSecurityWebApplicationInitializer} are necessary. 
* 
* @author Rob Winch 
*/ 
@Order(2) 
public class MessageSecurityWebApplicationInitializer extends 
     AbstractSecurityWebApplicationInitializer { 
} 

web.xml 파일 :

<?xml version="1.0" encoding="UTF-8"?> 

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

    <display-name>hr_project</display-name> 

    <context-param> 
     <param-name>contextClass</param-name> 
     <param-value> 
      org.springframework.web.context.support.AnnotationConfigWebApplicationContext 
     </param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <servlet> 
     <servlet-name>SpringDispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextClass</param-name> 
      <param-value> 
       org.springframework.web.context.support.AnnotationConfigWebApplicationContext 
      </param-value> 
     </init-param> 

     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>HR_Project.hr_project</param-value> 
     </init-param> 

     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>SpringDispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

    <session-config> 
     <session-timeout>30</session-timeout> 
    </session-config> 
</web-app> 

필요한 모든 종속성이 Maven을 사용하여 프로젝트에 추가되었습니다.

답변

0

나는이 봄 보안 구성의 좋은 예를 가질

<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> 

확인 link 필터 추가 할 필요가 당신의 web.xml에서 볼 수있는 당신의 봄 보안이 잘 구성되지 않은 생각

관련 문제