
org.pac4j.oauth.client.BitbucketClient Maven / Gradle / Ivy
package org.pac4j.oauth.client;
import com.fasterxml.jackson.databind.JsonNode;
import com.github.scribejava.core.builder.api.BaseApi;
import com.github.scribejava.core.model.OAuth1Token;
import com.github.scribejava.core.oauth.OAuth10aService;
import org.pac4j.core.exception.HttpAction;
import org.pac4j.oauth.profile.JsonHelper;
import org.pac4j.oauth.profile.bitbucket.BitbucketProfile;
import org.pac4j.scribe.builder.api.BitBucketApi;
/**
* This class is the OAuth client to authenticate users in Bitbucket.
*
* It returns a {@link org.pac4j.oauth.profile.bitbucket.BitbucketProfile}.
*
* @author Sebastian Sdorra
* @since 1.5.1
*/
public class BitbucketClient extends BaseOAuth10Client {
public BitbucketClient() {
}
public BitbucketClient(final String key, final String secret) {
setKey(key);
setSecret(secret);
}
@Override
protected BaseApi getApi() {
return new BitBucketApi();
}
@Override
protected String getProfileUrl(OAuth1Token token) {
return "https://bitbucket.org/api/1.0/user/";
}
@Override
protected BitbucketProfile extractUserProfile(String body) throws HttpAction {
BitbucketProfile profile = new BitbucketProfile();
JsonNode json = JsonHelper.getFirstNode(body);
if (json != null) {
json = (JsonNode) JsonHelper.getElement(json, "user");
if (json != null) {
for (final String attribute : profile.getAttributesDefinition().getPrimaryAttributes()) {
profile.addAttribute(attribute, JsonHelper.getElement(json, attribute));
}
}
}
return profile;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy