package org.pac4j.config.builder; import org.pac4j.config.client.PropertiesConstants; import org.pac4j.core.client.Client; import org.pac4j.oauth.client.*; import java.util.List; import java.util.Map; import static org.pac4j.core.util.CommonHelper.isNotBlank; /** * Builder for OAuth clients. * * @author Jerome Leleu * @since 2.0.0 */ public class OAuthBuilder extends AbstractBuilder implements PropertiesConstants { public OAuthBuilder(final Map<String, String> properties) { super(properties); } public void tryCreateLinkedInClient(final List<Client> clients) { final String id = getProperty(LINKEDIN_ID); final String secret = getProperty(LINKEDIN_SECRET); final String scope = getProperty(LINKEDIN_SCOPE); final String fields = getProperty(LINKEDIN_FIELDS); if (isNotBlank(id) && isNotBlank(secret)) { final LinkedIn2Client linkedInClient = new LinkedIn2Client(id, secret); if (isNotBlank(scope)) { linkedInClient.setScope(scope); } if (isNotBlank(fields)) { linkedInClient.setFields(fields); } clients.add(linkedInClient); } } public void tryCreateFacebookClient(final List<Client> clients) { final String id = getProperty(FACEBOOK_ID); final String secret = getProperty(FACEBOOK_SECRET); final String scope = getProperty(FACEBOOK_SCOPE); final String fields = getProperty(FACEBOOK_FIELDS); if (isNotBlank(id) && isNotBlank(secret)) { final FacebookClient facebookClient = new FacebookClient(id, secret); if (isNotBlank(scope)) { facebookClient.setScope(scope); } if (isNotBlank(fields)) { facebookClient.setFields(fields); } clients.add(facebookClient); } } public void tryCreateWindowsLiveClient(final List<Client> clients) { final String id = getProperty(WINDOWSLIVE_ID); final String secret = getProperty(WINDOWSLIVE_SECRET); if (isNotBlank(id) && isNotBlank(secret)) { final WindowsLiveClient client = new WindowsLiveClient(id, secret); clients.add(client); } } public void tryCreateFoursquareClient(final List<Client> clients) { final String id = getProperty(FOURSQUARE_ID); final String secret = getProperty(FOURSQUARE_SECRET); if (isNotBlank(id) && isNotBlank(secret)) { final FoursquareClient client = new FoursquareClient(id, secret); clients.add(client); } } public void tryCreateGoogleClient(final List<Client> clients) { final String id = getProperty(GOOGLE_ID); final String secret = getProperty(GOOGLE_SECRET); if (isNotBlank(id) && isNotBlank(secret)) { final Google2Client client = new Google2Client(id, secret); final String scope = getProperty(GOOGLE_SCOPE); if (isNotBlank(scope)) { client.setScope(Google2Client.Google2Scope.valueOf(scope.toUpperCase())); } clients.add(client); } } public void tryCreateYahooClient(final List<Client> clients) { final String id = getProperty(YAHOO_ID); final String secret = getProperty(YAHOO_SECRET); if (isNotBlank(id) && isNotBlank(secret)) { final YahooClient client = new YahooClient(id, secret); clients.add(client); } } public void tryCreateDropboxClient(final List<Client> clients) { final String id = getProperty(DROPBOX_ID); final String secret = getProperty(DROPBOX_SECRET); if (isNotBlank(id) && isNotBlank(secret)) { final DropBoxClient client = new DropBoxClient(id, secret); clients.add(client); } } public void tryCreateGithubClient(final List<Client> clients) { final String id = getProperty(GITHUB_ID); final String secret = getProperty(GITHUB_SECRET); if (isNotBlank(id) && isNotBlank(secret)) { final GitHubClient client = new GitHubClient(id, secret); clients.add(client); } } public void tryCreateTwitterClient(final List<Client> clients) { final String id = getProperty(TWITTER_ID); final String secret = getProperty(TWITTER_SECRET); if (isNotBlank(id) && isNotBlank(secret)) { final TwitterClient twitterClient = new TwitterClient(id, secret); clients.add(twitterClient); } } }