
org.pac4j.scribe.extractors.OrcidJsonExtractor Maven / Gradle / Ivy
package org.pac4j.scribe.extractors;
import com.github.scribejava.core.extractors.OAuth2AccessTokenJsonExtractor;
import com.github.scribejava.core.model.OAuth2AccessToken;
import org.pac4j.scribe.model.OrcidToken;
/**
* This class represents a specific JSON extractor for ORCiD using OAuth protocol version 2. It could be part of the Scribe library.
*
* @author Jens Tinglev
* @since 1.6.0
*/
public class OrcidJsonExtractor extends OAuth2AccessTokenJsonExtractor {
public static final String ORCID_REGEX = "\"orcid\"\\s*:\\s*\"(\\S*?)\"";
protected OrcidJsonExtractor() {
}
private static class InstanceHolder {
private static final OrcidJsonExtractor INSTANCE = new OrcidJsonExtractor();
}
public static OrcidJsonExtractor instance() {
return OrcidJsonExtractor.InstanceHolder.INSTANCE;
}
@Override
protected OAuth2AccessToken createToken(String accessToken, String tokenType, Integer expiresIn,
String refreshToken, String scope, String response) {
return new OrcidToken(accessToken, tokenType, expiresIn, refreshToken, scope,
extractParameter(response, ORCID_REGEX, true), response);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy