Example usage for java.net HttpCookie domainMatches

List of usage examples for java.net HttpCookie domainMatches

Introduction

In this page you can find the example usage for java.net HttpCookie domainMatches.

Prototype

public static boolean domainMatches(String domain, String host) 

Source Link

Document

The utility method to check whether a host name is in a domain or not.

Usage

From source file:org.jwebsocket.util.Tools.java

/**
 * Indicates if a cookie is valid for a given URI
 *
 * @param aURI//from w ww  . j av  a 2  s  . co m
 * @param aCookie
 * @return TRUE if the cookie is valid, FALSE otherwise
 */
public static boolean isCookieValid(URI aURI, HttpCookie aCookie) {
    return !aCookie.hasExpired()
            && (null == aCookie.getDomain() || HttpCookie.domainMatches(aCookie.getDomain(), aURI.getHost()))
            && (null == aCookie.getPath()
                    || (null != aURI.getPath() && aURI.getPath().startsWith(aCookie.getPath())))
            && (aCookie.getSecure() == (aURI.getScheme().equals("wss")));
}

From source file:org.mariotaku.twidere.util.OAuthPasswordAuthenticator.java

public OAuthToken getOAuthAccessToken(final String username, final String password)
        throws AuthenticationException {
    final OAuthToken requestToken;
    try {//from w w w. j  a va2 s  .co  m
        requestToken = oauth.getRequestToken(OAUTH_CALLBACK_OOB);
    } catch (final TwitterException e) {
        //            if (e.isCausedByNetworkIssue()) throw new AuthenticationException(e);
        throw new AuthenticityTokenException(e);
    }
    RestHttpResponse authorizePage = null, authorizeResult = null;
    try {
        final String oauthToken = requestToken.getOauthToken();
        final HashMap<String, String> inputMap = new HashMap<>();
        final RestHttpRequest.Builder authorizePageBuilder = new RestHttpRequest.Builder();
        authorizePageBuilder.method(GET.METHOD);
        authorizePageBuilder.url(endpoint.construct("/oauth/authorize",
                Pair.create("oauth_token", requestToken.getOauthToken())));
        final RestHttpRequest authorizePageRequest = authorizePageBuilder.build();
        authorizePage = client.execute(authorizePageRequest);
        final String[] cookieHeaders = authorizePage.getHeaders("Set-Cookie");
        readInputFromHtml(BaseTypedData.reader(authorizePage.getBody()), inputMap, INPUT_AUTHENTICITY_TOKEN,
                INPUT_REDIRECT_AFTER_LOGIN);
        final List<Pair<String, String>> params = new ArrayList<>();
        params.add(Pair.create("oauth_token", oauthToken));
        params.add(Pair.create(INPUT_AUTHENTICITY_TOKEN, inputMap.get(INPUT_AUTHENTICITY_TOKEN)));
        if (inputMap.containsKey(INPUT_REDIRECT_AFTER_LOGIN)) {
            params.add(Pair.create(INPUT_REDIRECT_AFTER_LOGIN, inputMap.get(INPUT_REDIRECT_AFTER_LOGIN)));
        }
        params.add(Pair.create("session[username_or_email]", username));
        params.add(Pair.create("session[password]", password));
        final FormTypedBody authorizationResultBody = new FormTypedBody(params);
        final ArrayList<Pair<String, String>> requestHeaders = new ArrayList<>();
        requestHeaders.add(Pair.create("Origin", "https://twitter.com"));
        requestHeaders.add(Pair.create("Referer", Endpoint.constructUrl("https://twitter.com/oauth/authorize",
                Pair.create("oauth_token", requestToken.getOauthToken()))));

        final String host = parseUrlHost(endpoint.getUrl());
        for (String cookieHeader : cookieHeaders) {
            for (HttpCookie cookie : HttpCookie.parse(cookieHeader)) {
                if (HttpCookie.domainMatches(cookie.getDomain(), host)) {
                    cookie.setVersion(1);
                    cookie.setDomain("twitter.com");
                }
                requestHeaders.add(Pair.create("Cookie", cookie.toString()));
            }
        }
        final RestHttpRequest.Builder authorizeResultBuilder = new RestHttpRequest.Builder();
        authorizeResultBuilder.method(POST.METHOD);
        authorizeResultBuilder.url(endpoint.construct("/oauth/authorize"));
        authorizeResultBuilder.headers(requestHeaders);
        authorizeResultBuilder.body(authorizationResultBody);
        authorizeResult = client.execute(authorizeResultBuilder.build());
        final String oauthPin = readOAuthPINFromHtml(BaseTypedData.reader(authorizeResult.getBody()));
        if (isEmpty(oauthPin))
            throw new WrongUserPassException();
        return oauth.getAccessToken(requestToken, oauthPin);
    } catch (final IOException | NullPointerException | XmlPullParserException | TwitterException e) {
        throw new AuthenticationException(e);
    } finally {
        if (authorizePage != null) {
            IoUtils.closeSilently(authorizePage);
        }
        if (authorizeResult != null) {
            IoUtils.closeSilently(authorizeResult);
        }
    }
}