Я работаю над проектом, который использует инфраструктуру Spring Portlet-MVC и Velocity на сервере Liferay Portal. Для нескольких страниц у нас есть требование обслуживать их по защищенному соединению. Будучи довольно новым для портлетов, я решил связать их с Action-методом и перенаправить оттуда.
@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?).
Любые предложения будут с благодарностью!