All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.pac4j.scribe.extractors.OrcidJsonExtractor Maven / Gradle / Ivy

There is a newer version: 6.1.0
Show newest version
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