2011-06-16 53 views
0

我有一個客戶端應用程序,它使用基本身份驗證與REST類型的調用向spring服務器進行通信。 控制器方法簽名如下:缺少類型爲[java.lang.String]的頭部授權'

@RequestMapping(value = "/REST/clients", method = RequestMethod.POST) 
protected ModelAndView postClients(@ModelAttribute("ClientsCommand") ClientsCommand cmd, 
     @RequestHeader("Authorization") String credentials) throws IOException { 
... 
} 

我的問題是,如果沒有授權是出現在頭部,我得到了一個錯誤:

Missing header 'Authorization' of type [java.lang.String]] 

然而,我是那種希望憑據字符串只是空的。如何阻止發生的錯誤,並在沒有發送授權標題條目的情況下收到空白字符串?

+1

現在要求我們爲您的問題找到問題? :-D – 2011-06-16 07:07:26

回答

6

嘗試在@RequestHeader上切換required=false

@RequestMapping(value = "/REST/clients", method = RequestMethod.POST) 
protected ModelAndView postClients(@ModelAttribute("ClientsCommand") ClientsCommand cmd, 
     @RequestHeader(value = "Authorization", required=false) String credentials) throws IOException { 
... 
} 

@RequestHeader配置要求,當標題是不存在的春天也不會映射到處理程序的請求。通過使其成爲可選項,您的處理程序將按照您的希望被調用(即不管標頭的存在)。