2013-09-21 2 views
0

내 스프링 MVC 애플리케이션 내 web.xml 파일을 업데이트 한업데이트 봄 보안

http://xyz.com/<war name>/springmvc/login 

다음 URL을 사용하는 URL 접미사와 일치하는

<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/springmvc/*</url-pattern> 
</filter-mapping> 

I 업데이트 봄 보안 XML 파일

을 다음과 같이
<http access-decision-manager-ref="accessDecisionManager" auto-config="true"> 
    <intercept-url pattern="/springmvc/welcome*" access="ADMIN" /> 
    <form-login login-page="/springmvc/login" default-target-url="/springmvc/welcome" 
     authentication-failure-url="/springmvc/loginfailed" /> 
    <logout logout-success-url="/springmvc/logout" /> 
    <remember-me data-source-ref="dataSource"/> 
</http> 

springmvc/login 또는 springmvc/welcome을 입력하면 로그인 페이지로 이동합니다. 하지만 사용자 이름과 비밀번호를 입력하면 404가 표시됩니다.이 URL은 http://xyz.com/UserInterface/springmvc/j_spring_security_check으로 변경됩니다. 나는 아래의 컨트롤러에 따라 Hello.jsp 라 볼 것으로 예상

양식 로그인에 대한

@RequestMapping(value="/welcome", method = RequestMethod.GET) 
public String printWelcome(ModelMap model) { 
    User user = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); 
    String name = user.getUsername(); 

    model.addAttribute("username", name); 
    model.addAttribute("message", "Spring Security login + database example"); 

    //logical view name 
    return "hello"; 
} 

답변

0

기본 로그인 처리-url 속성 값/j_spring_security_check입니다 다음과 같이 내 로그인 컨트롤러입니다. 즉, 로그인 양식이이 url에 게시됩니다.
컨텍스트 루트가 UserInterface 인 경우 기본 URL은 http://xyz.com/UserInterface/j_spring_security_check이지만 봄 보안이 이해할 수없는 http://xyz.com/UserInterface/springmvc/j_spring_security_check이라는 URL을 작성하고 있습니다.

당신은 두 가지 옵션

  1. 변경하면 springSecurityFilterChain URL 패턴을 가지고/*에서 /springmvc/* 및 사용자 정의 - 로그인 폼이 // j_spring_security_check
  2. 로 정의 추가 조치 이 있는지 확인 양식 - 로그인의 login-processing-url 경로