Spring MVC 中的 HTTP 303 重定向 * 不附加 JSESSIONID * 并且不触及任何弹簧配置 [重复]
Posted
技术标签:
【中文标题】Spring MVC 中的 HTTP 303 重定向 * 不附加 JSESSIONID * 并且不触及任何弹簧配置 [重复]【英文标题】:HTTP 303 redirect in Spring MVC *without tacking on JSESSIONID* and without touching any spring config [duplicate] 【发布时间】:2012-01-04 08:29:49 【问题描述】:当使用 spring 的 RedirectView 时,它调用 encodeRedirectURL 将 JSESSIONID 潜入 URL。我想重定向而不发生这种情况。
现在,我有:
@RequestMapping(value = "/MyProfile")
public ModelAndView gotoMyProfile(HttpSession session)
return new ModelAndView(new RedirectView("/profile?id="+userid));
这可以很好地将用户重定向到“/profile?id=4256”,但它会在其中粘贴“;JSESSIONID=F3D5AE8AED0F”,所以我最终会得到“/profile;JSESSIONID=F3D5AE8AED0F?id=4256”。
我想要下面的代码,但我认为 HttpServletResponse 不是 RequestMapping 的有效返回类型:
@RequestMapping(value = "/MyProfile")
public HttpServletResponse gotoMyProfile(HttpSession session, HttpServletResponse response)
response.setStatus(303);
response.setHeader("Location", "/profile?id=" + userid);
return response;
编辑:感谢您的回答,但我无权访问 Spring 安全配置。这就是为什么我尝试上面的代码。我正在寻求一个可以严格在 java 中完成的解决方案。
【问题讨论】:
无需返回响应。类型可以为空。 【参考方案1】:您可以在<http>
中设置disable-url-rewriting="true"
。
但如果此属性设置为 true,则客户端必须使用 cookie。
【讨论】:
以上是关于Spring MVC 中的 HTTP 303 重定向 * 不附加 JSESSIONID * 并且不触及任何弹簧配置 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
带有 i18n 消息的 Spring-MVC + RESTeasy 表单 bean 验证 (JSR 303)
JSR-303 Bean Validation 介绍及 Spring MVC 服务端验证最佳实践