Java tutorial
/** * Copyright (c) 2009--2014 Red Hat, Inc. * * This software is licensed to you under the GNU General Public License, * version 2 (GPLv2). There is NO WARRANTY for this software, express or * implied, including the implied warranties of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 * along with this software; if not, see * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. * * Red Hat trademarks are not licensed under GPLv2. No permission is * granted to use or replicate Red Hat trademarks that are incorporated * in this software or its documentation. */ package com.redhat.rhn.frontend.struts; import org.apache.commons.lang.StringUtils; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.apache.struts.action.DynaActionForm; import javax.servlet.http.HttpServletRequest; /** * RhnHelper contains helpful methods usable by our presentation layers. * * @version $Rev$ */ public class RhnHelper { /** The key used on RHN Requests to store the User */ public static final String TARGET_USER = "targetuser"; /** The key used on RHN Requests to store the Marketing Address */ public static final String TARGET_ADDRESS_MARKETING = "addressMarketing"; /** The key used on RHN Requests to store the Billing Address */ public static final String TARGET_ADDRESS_BILLING = "addressBilling"; /** The key used on RHN Requests to store the Shipping Address */ public static final String TARGET_ADDRESS_SHIPPING = "addressShipping"; /** The key for the default struts forward */ public static final String DEFAULT_FORWARD = "default"; /** The key for the confirm struts forward */ public static final String CONFIRM_FORWARD = "confirm"; /** The key for the default empty selection error */ public static final String DEFAULT_EMPTY_SELECTION_KEY = "emptyselectionerror"; /** utility class */ private RhnHelper() { } /** * If the path doesn't require authentication, return false. Otherwise * return true. Checks that the passed in path doesn't startwith the params * found in nosecurityPaths * @param nosecurityPaths array of String paths, "/foo", * "/bar/baz/test.jsp", "/somepath/foo.do" * @param path to check * @return boolean if it needs to be authorized or not */ public static boolean pathNeedsSecurity(String[] nosecurityPaths, String path) { for (int i = 0; i < nosecurityPaths.length; i++) { String curr = nosecurityPaths[i]; if (path.startsWith(curr)) { return false; } } return true; } /** * Method to add the default empty selection error message * to the request * @param request the servlet request */ public static void handleEmptySelection(HttpServletRequest request) { handleEmptySelection(request, DEFAULT_EMPTY_SELECTION_KEY); } /** * Use this for every textarea that we use in our UI. Otherwise you will get ^M * in your file showing up. * @param form to fetch from * @param name of value in form * @return String without CR in them. */ public static String getTextAreaValue(DynaActionForm form, String name) { String value = form.getString(name); return StringUtils.replaceChars(value, "\r", ""); } /** * Method to add the empty selection error message * to the request * @param request the servlet request * @param messageKey the key associated to * the empty selection error */ public static void handleEmptySelection(HttpServletRequest request, String messageKey) { ActionMessages msg = new ActionMessages(); msg.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(messageKey)); StrutsDelegate delegate = StrutsDelegate.getInstance(); delegate.saveMessages(request, msg); } /** * If you need to a request parameter that may contain +++ * or other special characters that fails to fetch properly using * request.getParameter() you can use this method. * * @param request to fetch from * @param name of parameter to fetch * @return String value from request, null if not found. */ public static String getParameterWithSpecialCharacters(HttpServletRequest request, String name) { String queryString = request.getQueryString(); if (StringUtils.isEmpty(queryString)) { return null; } String[] pairs = StringUtils.split(queryString, "&"); for (int i = 0; i < pairs.length; i++) { String[] param = StringUtils.split(pairs[i], "="); String iname = param[0]; if (StringUtils.equals(name, iname) && param.length > 1) { String value = param[1]; return value; } } return null; } }