@Override public void processAction( PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); if (!_openId.isEnabled(themeDisplay.getCompanyId())) { throw new PrincipalException.MustBeEnabled( themeDisplay.getCompanyId(), OpenId.class.getName()); } if (actionRequest.getRemoteUser() != null) { actionResponse.sendRedirect(themeDisplay.getPathMain()); return; } String cmd = ParamUtil.getString(actionRequest, Constants.CMD); try { if (cmd.equals(Constants.READ)) { String redirect = readOpenIdResponse(themeDisplay, actionRequest); if (Validator.isNull(redirect)) { redirect = themeDisplay.getURLSignIn(); } redirect = PortalUtil.escapeRedirect(redirect); actionResponse.sendRedirect(redirect); } else { sendOpenIdRequest(themeDisplay, actionRequest, actionResponse); } } catch (Exception e) { if (e instanceof OpenIDException) { if (_log.isInfoEnabled()) { _log.info("Error communicating with OpenID provider: " + e.getMessage()); } SessionErrors.add(actionRequest, e.getClass()); } else if (e instanceof UserEmailAddressException.MustNotBeDuplicate) { SessionErrors.add(actionRequest, e.getClass()); } else { _log.error("Error processing the OpenID login", e); PortalUtil.sendError(e, actionRequest, actionResponse); } } }
protected boolean redirectToLogin(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException { if (actionRequest.getRemoteUser() == null) { HttpServletRequest request = PortalUtil.getHttpServletRequest(actionRequest); SessionErrors.add(request, PrincipalException.class.getName()); ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); actionResponse.sendRedirect(themeDisplay.getURLSignIn()); return true; } else { return false; } }
public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { HeaderCacheServletResponse headerCacheServletResponse = null; if (response instanceof HeaderCacheServletResponse) { headerCacheServletResponse = (HeaderCacheServletResponse) response; } else { headerCacheServletResponse = new HeaderCacheServletResponse(response); } ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); Layout layout = themeDisplay.getLayout(); Boolean layoutDefault = (Boolean) request.getAttribute(WebKeys.LAYOUT_DEFAULT); if ((layoutDefault != null) && (layoutDefault.booleanValue())) { Layout requestedLayout = (Layout) request.getAttribute(WebKeys.REQUESTED_LAYOUT); if (requestedLayout != null) { String redirectParam = "redirect"; if (Validator.isNotNull(PropsValues.AUTH_LOGIN_PORTLET_NAME)) { redirectParam = PortalUtil.getPortletNamespace(PropsValues.AUTH_LOGIN_PORTLET_NAME) + redirectParam; } String authLoginURL = null; if (PrefsPropsUtil.getBoolean( themeDisplay.getCompanyId(), PropsKeys.CAS_AUTH_ENABLED, PropsValues.CAS_AUTH_ENABLED)) { authLoginURL = themeDisplay.getURLSignIn(); } if (Validator.isNull(authLoginURL)) { authLoginURL = PortalUtil.getCommunityLoginURL(themeDisplay); } if (Validator.isNull(authLoginURL)) { authLoginURL = PropsValues.AUTH_LOGIN_URL; } if (Validator.isNull(authLoginURL)) { PortletURL loginURL = LoginUtil.getLoginURL(request, themeDisplay.getPlid()); authLoginURL = loginURL.toString(); } String currentURL = PortalUtil.getCurrentURL(request); authLoginURL = HttpUtil.setParameter(authLoginURL, redirectParam, currentURL); if (_log.isDebugEnabled()) { _log.debug("Redirect requested layout to " + authLoginURL); } headerCacheServletResponse.sendRedirect(authLoginURL); } else { String redirect = PortalUtil.getLayoutURL(layout, themeDisplay); if (_log.isDebugEnabled()) { _log.debug("Redirect default layout to " + redirect); } headerCacheServletResponse.sendRedirect(redirect); } return null; } long plid = ParamUtil.getLong(request, "p_l_id"); if (_log.isDebugEnabled()) { _log.debug("p_l_id is " + plid); } if (plid > 0) { ActionForward actionForward = processLayout(mapping, request, headerCacheServletResponse, plid); String contentType = response.getContentType(); CacheResponseUtil.setHeaders(response, headerCacheServletResponse.getHeaders()); if (contentType != null) { response.setContentType(contentType); } return actionForward; } else { try { forwardLayout(request); return mapping.findForward(ActionConstants.COMMON_FORWARD_JSP); } catch (Exception e) { PortalUtil.sendError(e, request, headerCacheServletResponse); CacheResponseUtil.setHeaders(response, headerCacheServletResponse.getHeaders()); return null; } } }