/** */ @Override public Object clone() { return new UrlEncoded(this); } }
/** */ @Override public Object clone() { return new UrlEncoded(this); } }
/** */ @Override public Object clone() { return new UrlEncoded(this); } }
/** */ @Override public Object clone() { return new UrlEncoded(this); } }
/** */ @Override public Object clone() { return new UrlEncoded(this); } }
/** */ @Override public Object clone() { return new UrlEncoded(this); } }
/** */ @Override public Object clone() { return new UrlEncoded(this); } }
/** */ @Override public Object clone() { return new UrlEncoded(this); } }
/** */ @Override public Object clone() { return new UrlEncoded(this); } }
@SuppressWarnings("unchecked") private LoginContext login(BufferedReader body) throws IOException, LoginException { try { Subject subject = new Subject(); String parametersLine = body.readLine(); // Throws UnsupportedEncodingException. byte[] utf8Bytes = parametersLine.getBytes("UTF-8"); CharsetDecoder utf8Decoder = Charset.forName("UTF-8").newDecoder(); utf8Decoder.onMalformedInput(CodingErrorAction.IGNORE); utf8Decoder.onUnmappableCharacter(CodingErrorAction.IGNORE); // Throws CharacterCodingException. CharBuffer parsed = utf8Decoder.decode(ByteBuffer.wrap(utf8Bytes)); parametersLine = parsed.toString(); MultiMap<String> parameters = new UrlEncoded(parametersLine); CallbackHandler callbackHandler = new HttpRequestBasedCallbackHandler(parameters); LoginContext context = new LoginContext("Wave", subject, callbackHandler, configuration); // If authentication fails, login() will throw a LoginException. context.login(); return context; } catch (CharacterCodingException cce) { throw new LoginException("Character coding exception (not utf-8): " + cce.getLocalizedMessage()); } catch (UnsupportedEncodingException uee) { throw new LoginException("ad character encoding specification: " + uee.getLocalizedMessage()); } }
@Override public String extractAuthCodeFromAuthResponse(@NonNull String redirectURLwithParams) throws OAuthException { // parse the redirectURL try { URL redirectURLObject = new URL(redirectURLwithParams); UrlEncoded urlEncoded = new UrlEncoded(redirectURLObject.getQuery()); String stateFromRedirectURL = urlEncoded.getValue(STATE, 0); // may contain multiple... if (stateFromRedirectURL == null) { if (persistedParams.state == null) { // This should not happen as the state is usually set return urlEncoded.getValue(CODE, 0); } // else throw new OAuthException(String.format("state from redirectURL is incorrect. Expected: %s Found: %s", persistedParams.state, stateFromRedirectURL)); } else { if (stateFromRedirectURL.equals(persistedParams.state)) { return urlEncoded.getValue(CODE, 0); } // else throw new OAuthException(String.format("state from redirectURL is incorrect. Expected: %s Found: %s", persistedParams.state, stateFromRedirectURL)); } } catch (MalformedURLException e) { throw new OAuthException("Redirect URL is malformed", e); } }