协议升级https后,重定向还是http的问题:
1.在配置文件中设置redirectHttp10Compatible=false
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="redirectHttp10Compatible" value="false" />
</bean>
2.如果项目中有用shiro,改完上面的配置还是有问题,需要重写shiro的部分代码
登录成功跳转,重写FormAuthenticationFilter的onLoginSuccess方法
跳转的源代码是:super.onLoginSuccess();
改为:WebUtils.issueRedirect(request, response, super.getSuccessUrl(), null, true, false);
退出登录跳转,重写LogoutFilter的preHandle方法
跳转的源代码是:super.issueRedirect();
改为:WebUtils.issueRedirect(request, response, super.redirectUrl(), null, true, false);
ps:看源码可以知道,主要是最后一个参数设置redirectHttp10Compatible=false,源码中默认是true。
3.手动设置response
response.setStatus(302);
response.setHeader("location", redirectUrl);
response.sendRedirect(redirectUrl);2
4.request转发
request.getRequestDispatcher(reqUrl).forward(request, response);
协议升级https后,重定向还是http的问题
最新推荐文章于 2023-07-28 16:33:33 发布