@Override public AuthenticationResult<Account> authenticate(UpgradeRequest request) throws AuthenticationException { try { Map<String, List<String>> parameters = request.getParameterMap(); List<String> usernames = parameters.get("login"); List<String> passwords = parameters.get("password"); if (usernames == null || usernames.size() == 0 || passwords == null || passwords.size() == 0) { return new AuthenticationResult<>(Optional.empty(), false); } BasicCredentials credentials = new BasicCredentials(usernames.get(0).replace(" ", "+"), passwords.get(0).replace(" ", "+")); return new AuthenticationResult<>(accountAuthenticator.authenticate(credentials), true); } catch (io.dropwizard.auth.AuthenticationException e) { throw new AuthenticationException(e); } }
/** * Get parameters from query. * * @param request the request. * @return map of query parameters. */ private Map<String, String> getQueryParameters(UpgradeRequest request) { Map<String, String> queryParameters = new HashMap<>(); for (Map.Entry<String, String[]> entry : request.getParameterMap().entrySet()) { queryParameters.put(entry.getKey(), entry.getValue()[0]); } return queryParameters; }
@Override public Object createWebSocket(UpgradeRequest req, UpgradeResponse resp) { String socketId = req.getParameterMap().get(Switchboard.SB_SOCKET_ID)[0]; return new ChannelSocket(socketId); } }
public void setUpgradeRequest(UpgradeRequest request) { this.upgradeRequest = request; this.protocolVersion = request.getProtocolVersion(); this.parameterMap.clear(); if (request.getParameterMap() != null) { for (Map.Entry<String, List<String>> entry : request.getParameterMap().entrySet()) { List<String> values = entry.getValue(); if (values != null) { this.parameterMap.put(entry.getKey(),values.toArray(new String[values.size()])); } else { this.parameterMap.put(entry.getKey(),new String[0]); } } } }
public ValidateUpgradeRequest invoke() { UpgradeRequest request = session.getUpgradeRequest(); URI uri = request.getRequestURI(); path = uri.getPath(); Map<String, List<String>> params = request.getParameterMap(); List<String> watch = params.get("watch"); LOG.debug("path: {}", path); if (watch == null || watch.size() != 1) { session.close(0, " must specify watch parameter when connecting via websocket"); myResult = true; return this; } if (!watch.get(0).equalsIgnoreCase("true")) { session.close(0, " must specify watch parameter equal to 'true' when connecting via websocket"); myResult = true; return this; } myResult = false; return this; } }
@Override public AuthenticationResult<HelloAccount> authenticate(UpgradeRequest request) throws AuthenticationException { try { Map<String, List<String>> parameters = request.getParameterMap(); List<String> usernames = parameters.get("login"); List<String> passwords = parameters.get("password"); if (usernames == null || usernames.size() == 0 || passwords == null || passwords.size() == 0) { return new AuthenticationResult<>(Optional.empty(), false); } BasicCredentials credentials = new BasicCredentials(usernames.get(0), passwords.get(0)); return new AuthenticationResult<>(basicAuthenticator.authenticate(credentials), true); } catch (io.dropwizard.auth.AuthenticationException e) { throw new AuthenticationException(e); } }
@OnWebSocketConnect public void connected(Session session) { String domain = session.getUpgradeRequest().getParameterMap().get("domain").get(0);