2012-08-22 151 views
0

我想使用彈簧安全調度servlet映射

所有的配置

http://localhost:9090/app/login2.xhtml 

請求之前,工作如我所料。

我添加了一個控制器:

@Controller 
@RequestMapping("/auth") 
public class LoginController { 


@RequestMapping(value = "/login", method = RequestMethod.GET) 
public String getLoginPage(@RequestParam(value="error", required=false) boolean error, 
    ModelMap model) { 
return "login2.xhtnml"; 
} 

} 

我已經在web.xml:

<servlet> 
<servlet-name>spring</servlet-name> 
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
<init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
       classpath:META-INF/spring-servlet.xml 
     </param-value> 
    </init-param> 
<load-on-startup>1</load-on-startup> 
</servlet> 

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

利用這種配置,當我打電話

http://localhost:9090/app/login2.xhtml 

錯誤出現

WARN org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/app/login2.xhtml] in DispatcherServlet with name 'spring' 

但是當我改變配置映射到

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

http://localhost:9090/app/login2.xhtml作品如我所料

http://localhost:9090/app/auth/login 

沒有給出錯誤,沒有例外,沒有重定向,我覺得調度servlet可以不知道這個請求。

http://localhost:9090/app/app/auth/login 

作品與

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

我的理解:

調度的servlet使用"http://localhost:9090/"作爲基本搜索login2.xhtml 和使用"http://localhost:9090/app"/auth/login URL。

我不知道在哪裏設置這個,爲什麼它們是不同的。

回答

0

你有沒有加入SpringSecurityFilterChain到web.xml?

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

如果容器啓動(從日誌文件中),你可以通過註冊的「請求綁定」嗎?

+0

感謝您迴應,但我沒有這個項目了,所以即使我有achived有項目運行如我所料,我不能告訴你答案我不記得:) – merveotesi