public void set( final Request request, final Response response, final String key, final String value) { String prefString = cookieUtils.load(PREFMAN_KEY); final Map<String, String> current = new HashMap<>(); if (prefString != null) { current.putAll(getPrefs(new String(Base64.decodeBase64(prefString.getBytes())))); } // after retrieved previous setting in order to overwrite the key ... current.put(key, value); try { cookieUtils.save(PREFMAN_KEY, new String(Base64.encodeBase64(setPrefs(current).getBytes()))); } catch (IOException e) { LOG.error("Could not save {} info: {}", getClass().getSimpleName(), current, e); } }
public void set( final Request request, final Response response, final Map<String, List<String>> prefs) { Map<String, String> current = new HashMap<>(); String prefString = cookieUtils.load(PREFMAN_KEY); if (prefString != null) { current.putAll(getPrefs(new String(Base64.decodeBase64(prefString.getBytes())))); } // after retrieved previous setting in order to overwrite the key ... for (Map.Entry<String, List<String>> entry : prefs.entrySet()) { current.put(entry.getKey(), StringUtils.join(entry.getValue(), ";")); } try { cookieUtils.save(PREFMAN_KEY, new String(Base64.encodeBase64(setPrefs(current).getBytes()))); } catch (IOException e) { LOG.error("Could not save {} info: {}", getClass().getSimpleName(), current, e); } }
/** * Encodes binary data using the base64 algorithm, optionally chunking the output into 76 * character blocks. * * @param binaryData Array containing binary data to encode. * @param isChunked if <code>true</code> this encoder will chunk the base64 output into 76 * character blocks * @param urlSafe if <code>true</code> this encoder will emit - and _ instead of the usual + and / * characters. * @param maxResultSize The maximum result size to accept. * @return Base64-encoded data. * @throws IllegalArgumentException Thrown when the input array needs an output array bigger than * maxResultSize * @since 1.4 */ public static byte[] encodeBase64( final byte[] binaryData, final boolean isChunked, final boolean urlSafe, final int maxResultSize) { if ((binaryData == null) || (binaryData.length == 0)) { return binaryData; } long len = getEncodeLength(binaryData, CHUNK_SIZE, CHUNK_SEPARATOR); if (len > maxResultSize) { throw new IllegalArgumentException( "Input array too big, the output array would be bigger (" + len + ") than the specified maxium size of " + maxResultSize); } Base64 b64 = isChunked ? new Base64(urlSafe) : new Base64(0, CHUNK_SEPARATOR, urlSafe); return b64.encode(binaryData); }
public String get(final Request request, final String key) { String result = null; String prefString = cookieUtils.load(PREFMAN_KEY); if (prefString != null) { final Map<String, String> prefs = getPrefs(new String(Base64.decodeBase64(prefString.getBytes()))); result = prefs.get(key); } return result; }
private Url encodeSharedResourceUrl(Url url) { if (url != null) { Request request = RequestCycle.get().getRequest(); StringBuilder urlBuilder = new StringBuilder(); urlBuilder.append(request.getContextPath()); urlBuilder.append(request.getFilterPath()); urlBuilder.append(PortletFilter.SHARED_RESOURCE_URL_PORTLET_WINDOW_ID_PREFIX); urlBuilder.append( Base64.encodeBase64URLSafeString(ThreadPortletContext.getWindowID().getBytes())); urlBuilder.append('/'); urlBuilder.append(url.toString()); url = Url.parse(urlBuilder.toString()); } return url; }