@Override public void writeAttribute(final HttpServerExchange exchange, final String newValue) throws ReadOnlyAttributeException { final ArrayDeque<String> value = new ArrayDeque<>(); value.add(newValue); exchange.getPathParameters().put(parameter, value); }
@Override public String findSessionId(final HttpServerExchange exchange) { Deque<String> stringDeque = exchange.getPathParameters().get(name); if (stringDeque == null) { return null; } UndertowLogger.SESSION_LOGGER.tracef("Found path parameter session id %s on %s", stringDeque.getFirst(), exchange); return stringDeque.getFirst(); }
@Override public void clearSession(final HttpServerExchange exchange, final String sessionId) { UndertowLogger.SESSION_LOGGER.tracef("Clearing path parameter session id %s on %s", sessionId, exchange); exchange.getPathParameters().remove(name); }
@Override public String readAttribute(final HttpServerExchange exchange) { Deque<String> res = exchange.getPathParameters().get(parameter); if(res == null) { return null; }else if(res.isEmpty()) { return ""; } else if(res.size() ==1) { return res.getFirst(); } else { StringBuilder sb = new StringBuilder("["); int i = 0; for(String s : res) { sb.append(s); if(++i != res.size()) { sb.append(", "); } } sb.append("]"); return sb.toString(); } }
@Override public void setSessionId(final HttpServerExchange exchange, final String sessionId) { exchange.getPathParameters().remove(name); exchange.addPathParam(name, sessionId); UndertowLogger.SESSION_LOGGER.tracef("Setting path parameter session id %s on %s", sessionId, exchange); }
if (!exchange.getPathParameters().isEmpty()) { boolean first = true; uri.append(';'); for (Map.Entry<String, Deque<String>> param : exchange.getPathParameters().entrySet()) { for (String value : param.getValue()) { if (first) {
if (exchange.getPathParameters().containsKey(balancer.getStickySessionPath())) { final String session = exchange.getPathParameters().get(balancer.getStickySessionPath()).getFirst(); final String jvmRoute = getJVMRoute(session); if (jvmRoute != null) {
/** * @return the path parameters * @see io.undertow.server.HttpServerExchange#getPathParameters() */ public Map<String, Deque<String>> getPathParameters() { return exchange.getPathParameters(); }
@Override public void writeAttribute(final HttpServerExchange exchange, final String newValue) throws ReadOnlyAttributeException { final ArrayDeque<String> value = new ArrayDeque<>(); value.add(newValue); exchange.getPathParameters().put(parameter, value); }
@Override public void writeAttribute(final HttpServerExchange exchange, final String newValue) throws ReadOnlyAttributeException { final ArrayDeque<String> value = new ArrayDeque<>(); value.add(newValue); exchange.getPathParameters().put(parameter, value); }
@Override public void clearSession(final HttpServerExchange exchange, final String sessionId) { UndertowLogger.SESSION_LOGGER.tracef("Clearing path parameter session id %s on %s", sessionId, exchange); exchange.getPathParameters().remove(name); }
@Override public String findSessionId(final HttpServerExchange exchange) { Deque<String> stringDeque = exchange.getPathParameters().get(name); if (stringDeque == null) { return null; } UndertowLogger.SESSION_LOGGER.tracef("Found path parameter session id %s on %s", stringDeque.getFirst(), exchange); return stringDeque.getFirst(); }
@Override public String findSessionId(final HttpServerExchange exchange) { Deque<String> stringDeque = exchange.getPathParameters().get(name); if (stringDeque == null) { return null; } UndertowLogger.SESSION_LOGGER.tracef("Found path parameter session id %s on %s", stringDeque.getFirst(), exchange); return stringDeque.getFirst(); }
@Override public void clearSession(final HttpServerExchange exchange, final String sessionId) { UndertowLogger.SESSION_LOGGER.tracef("Clearing path parameter session id %s on %s", sessionId, exchange); exchange.getPathParameters().remove(name); }
@Override public Object getRequestAttribute(final String name) { Object value = null; Deque<String> v = exchange.getPathParameters().get(SPECIFIC_PAC4J_DATA + name); if (v != null) { final String serializedValue = v.getFirst(); if (serializedValue != null) { value = JAVA_SERIALIZATION_HELPER.unserializeFromBase64(serializedValue); } } return value; }
private Map<String, String> getRequestParameters(HttpServerExchange exchange) { Map<String, String> requestParamater = new HashMap<String, String>(); Map<String, Deque<String>> queryParameters = exchange.getQueryParameters(); queryParameters.putAll(exchange.getPathParameters()); for (Map.Entry<String, Deque<String>> entry : queryParameters.entrySet()) { requestParamater.put(entry.getKey(), entry.getValue().element()); } return requestParamater; }
@Override public void setSessionId(final HttpServerExchange exchange, final String sessionId) { exchange.getPathParameters().remove(name); exchange.addPathParam(name, sessionId); UndertowLogger.SESSION_LOGGER.tracef("Setting path parameter session id %s on %s", sessionId, exchange); }
@Override public void setSessionId(final HttpServerExchange exchange, final String sessionId) { exchange.getPathParameters().remove(name); exchange.addPathParam(name, sessionId); UndertowLogger.SESSION_LOGGER.tracef("Setting path parameter session id %s on %s", sessionId, exchange); }
@Override public String path() { // cannot use path as it cut the URI like // "/gh/325/data/foo=3;bar=6/key/bar" // to "/gh/325/data/foo=3" // and put "bar=6/key/bar" as path parameters //return hse.getRequestPath(); if (null == path) { path = hse.getPathParameters().isEmpty() ? hse.getRelativePath() : Codec.decodeUrl(hse.getRequestURI()); } return path; }
@Override public String path() { // cannot use path as it cut the URI like // "/gh/325/data/foo=3;bar=6/key/bar" // to "/gh/325/data/foo=3" // and put "bar=6/key/bar" as path parameters //return hse.getRequestPath(); if (null == path) { path = hse.getPathParameters().isEmpty() ? hse.getRelativePath() : Codec.decodeUrl(hse.getRequestURI()); } return path; }