2012-05-02 2 views
0

이라는 제목은 간단한 봄 보안 테스트에 약간의 문제가 있음을 의미합니다.스프링 보안이 작동하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

main 
java 
    de 
    cochu 
     spring 
     controller 
      HomeController 
webapp 
    WEB-INF 
    jsp 
     home.jsp 
     index.jsp 
    security-context.xml 
    spring-servlet.xml 
    web.xml 

은 web.xml :

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

<filter> 
    <filter-name>filterChainProxy</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>filterChainProxy</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

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

<servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>/spring/*</url-pattern> 
</servlet-mapping> 

봄-servlet.xml에

<context:annotation-config/> 
<context:component-scan base-package="de.cochu.spring.controller"/> 

<bean id="internalViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
    <property name="prefix" value="/WEB-INF/jsp/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 

보안-context.xml에

이 내 프로젝트 구조 (받는다는 웹 애플리케이션 2.5)입니다
<security:http auto-config="true" use-expressions="true"> 
    <security:intercept-url pattern="/**" access="ROLE_USER"/> 
</security:http> 

<security:authentication-manager> 
    <security:authentication-provider> 
     <security:user-service> 
      <security:user name="test" password="test" authorities="ROLE_USER"/> 
     </security:user-service> 
    </security:authentication-provider> 
</security:authentication-manager> 

HomeController.java

@Controller 
@RequestMapping("/") 
public class HomeController { 

    @RequestMapping(method = RequestMethod.GET) 
    public String show() { 
     return "index"; 
    } 

    @RequestMapping(value = "/secure", method = RequestMethod.GET) 
    public String secure() { 
     return "home"; 
    } 
} 

정확한 문제 : 로그인 양식이 없거나 열리는 것이 없습니다. 그냥 페이지를 표시합니다. 거의 모든 URL 패턴 조합/가로 채기 URL 조합을 시도했지만 반응이 없었습니다. 뭐가 잘못 되었 니?

+0

예외가 있습니까? – Ravi

답변

7

FilterChainProxy 빈은 (봄 보안 3.1를 사용하여 springSecurityFilterChain 그래서 난 일반적으로 사용하는 설정을의이

<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

<filter> 
    <filter-name>filterChainProxy</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

당신의 web.xml을 수정하려고 변경 별명에 등록 .0.RELEASE)

+0

위대한 작품! –

+0

나는 그 이름이 springSecurityFilterChain과 일치해야한다는 것에 정말로 놀랐다. 나는 이것 때문에 몇 시간 동안 머리카락을 당겨왔다. 하지만 이것이 봄 친구들이 코딩 한 방법 인 것 같습니다. http://docs.spring.io/spring-security/site/docs/3.0.x/reference/ns-config.html#ns-getting-started – omerio

관련 문제