0
目標:隱藏頁面URL中的鍵/值對。例如。 - http://abc.xyz.com/nav/book?clientID=390&fundID=-1&navDate=-1隱藏URL中的彈簧會話bean參數值
我不希望clientID等在URL中可見(安全原因)。 我知道http是一個無狀態協議。目前使用的春天 「會話」
我使用HttpSession中,春@SessionAttributes試過了,範圍的bean -
@Component
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class UserSession {
private String clientID;
private String fundID;
private String navDate;
public String getClientID() {
return clientID;
}
public void setClientID(String clientID) {
this.clientID = clientID;
}
public String getFundID() {
return fundID;
}
public void setFundID(String fundID) {
this.fundID = fundID;
}
public String getNavDate() {
return navDate;
}
public void setNavDate(String navDate) {
this.navDate = navDate;
}
}
而且用它我控制器 -
@Controller
@SessionAttributes(value = {"client","fund","nav"})
public class HomeController {
@Autowired
private UserSession userSession;
@RequestMapping(value = "abc", method = RequestMethod.GET)
public ModelAndView navWorkbook(Model model, HttpServletRequest request, HttpServletResponse response,
@RequestParam(required = false) String clientID,
@RequestParam(required = false) String fundID,
@RequestParam(required = false) String navDate) {
ModelAndView modelAndView = new ModelAndView("abcd");
.
.
.
userSession.setClientID(clientID);
userSession.setFundID(fundID);
userSession.setNavDate(navDate);
modelAndView.addObject("userSession", userSession);
return modelAndView;
}
}
有沒有辦法隱藏URL中顯示的spring bean的屬性名/值?
謝謝你們
奏效謝謝你,所以你可以告訴我1),其中,由於HTTP畢竟是無狀態的存儲該數據如果不是URL? 2.)爲什麼在訪問bean屬性時post和get不同? –
@kaustavdatta HTTP協議不會強制HTTP服務器讀取GET HTTP請求的主體。因爲這樣的請求參數需要在URL中發送。然而,HTTP POST強制服務器讀取請求主體。因此,您可以將url編碼的請求參數直接放在主體中。 –
@kaustavdatta但它是如何工作在重定向:值,bcose重定向僅適用於RequestMethod.GET –