
org.bitbucket.gkutiel.auth4j.App Maven / Gradle / Ivy
package org.bitbucket.gkutiel.auth4j;
import static com.mashape.unirest.http.Unirest.get;
import static com.mashape.unirest.http.Unirest.post;
import static org.apache.http.HttpHeaders.ACCEPT;
import static org.apache.http.entity.ContentType.APPLICATION_JSON;
import static org.slf4j.LoggerFactory.getLogger;
import org.bitbucket.gkutiel.auth4j.Fetch.AccessToken;
import org.slf4j.Logger;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import com.mashape.unirest.request.HttpRequest;
public interface App {
Logger log = getLogger(App.class);
Gson gson = new Gson();
default HttpRequest accessToken(final String code) {
//@formatter:off
return
post(accessTokenUrl())
.header(ACCEPT, APPLICATION_JSON.getMimeType())
.field("code", code)
.field("client_id", appId())
.field("client_secret", appSecret())
.field("redirect_uri", redirectUrl())
.field("grant_type", "authorization_code")
.getHttpRequest()
;
//@formatter:on
}
String accessTokenUrl();
String appId();
String appSecret();
default HttpRequest loginDialog() {
//@formatter:off
return
get(loginBaseUrl())
.queryString("client_id", appId())
.queryString("redirect_uri", redirectUrl())
.queryString("response_type", "code")
.queryString("state", "of the art")
;
//@formatter:on
}
String loginBaseUrl();
default AccessToken parseAccessToken(final String accessToken) {
try {
return gson.fromJson(accessToken, AccessToken.class);
} catch (final JsonSyntaxException e) {
log.error(e.getMessage(), e);
return null;
}
}
String redirectUrl();
default HttpRequest updateLoginDialogReq(final HttpRequest req) {
return req;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy