package com.github.scribejava.apis; import com.github.scribejava.core.builder.api.DefaultApi20; import com.github.scribejava.core.builder.api.OAuth2SignatureType; import com.github.scribejava.core.extractors.OAuth2AccessTokenExtractor; import com.github.scribejava.core.extractors.TokenExtractor; import com.github.scribejava.core.model.OAuth2AccessToken; /** * Stack Exchange authentication via OAuth 2.0 (stackoverflow.com, * askubuntu.com, etc.). */ public class StackExchangeApi extends DefaultApi20 { protected StackExchangeApi() { } private static class InstanceHolder { private static final StackExchangeApi INSTANCE = new StackExchangeApi(); } public static StackExchangeApi instance() { return InstanceHolder.INSTANCE; } @Override public String getAccessTokenEndpoint() { return "https://stackexchange.com/oauth/access_token"; } @Override protected String getAuthorizationBaseUrl() { return "https://stackexchange.com/oauth"; } @Override public TokenExtractor<OAuth2AccessToken> getAccessTokenExtractor() { return OAuth2AccessTokenExtractor.instance(); } @Override public OAuth2SignatureType getSignatureType() { return OAuth2SignatureType.BEARER_URI_QUERY_PARAMETER; } }