我正在开发一个在 Liferay 门户服务器上使用 Spring Portlet-MVC 框架和 Velocity 的项目。对于一些页面,我们需要在安全连接上为它们提供服务。作为 Portlets 的新手,我想出了链接到 Action-Method 并从那里重定向的解决方案。
@ActionMapping(params = "command=secureRedirect")
public void actionSecureRedirect(ActionRequest request, ActionResponse response) {
HttpServletRequest servletRequest = PortalUtil.getHttpServletRequest(request);
String absoluteUrl = servletRequest.getRequestURL().toString();
String[] urlComponents = StringUtils.split(absoluteUrl, '/');
StringBuffer redirectUrl = new StringBuffer("https://");
redirectUrl.append(urlComponents[1]);
redirectUrl.append("<specificPath>");
response.sendRedirect(redirectUrl.toString());
}
我的解决方案有效,但对我来说似乎不太好。我想知道是否有人可以想到另一种更透明的方式来做到这一点(也许在 RenderMappings 上使用拦截器和注释?)。
任何建议将不胜感激!