Added GitHub provider. Simplified FaceBook provider

This commit is contained in:
Stian Thorgersen committed 2014-02-05 10:55:52 +00:00
1 parent 2ad873a87f
commit 8b5fbe92d6
14 files changed
+290 -249

No files matched your search

+23
View File
@@ -0,0 +1,23 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>keycloak-social-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.0-alpha-2-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>keycloak-social-github</artifactId>
<name>Keycloak Social GitHub</name>
<description/>
<dependencies>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-social-core</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,67 @@
package org.keycloak.social.github;
import org.json.JSONObject;
import org.keycloak.social.AbstractOAuth2Provider;
import org.keycloak.social.AuthRequest;
import org.keycloak.social.SocialProviderConfig;
import org.keycloak.social.SocialProviderException;
import org.keycloak.social.SocialUser;
import org.keycloak.social.utils.SimpleHttp;
/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
*/
public class GitHubProvider extends AbstractOAuth2Provider {
private static final String ID = "github";
private static final String NAME = "GitHub";
private static final String AUTH_URL = "https://github.com/login/oauth/authorize";
private static final String TOKEN_URL = "https://github.com/login/oauth/access_token";
private static final String PROFILE_URL = "https://api.github.com/user";
private static final String DEFAULT_SCOPE = "user:email";
@Override
public String getId() {
return ID;
}
@Override
public String getName() {
return NAME;
}
@Override
protected String getScope() {
return DEFAULT_SCOPE;
}
@Override
protected String getAuthUrl() {
return AUTH_URL;
}
@Override
protected String getTokenUrl() {
return TOKEN_URL;
}
@Override
protected SocialUser getProfile(String accessToken) throws SocialProviderException {
try {
JSONObject profile = SimpleHttp.doGet(PROFILE_URL).header("Authorization", "Bearer " + accessToken).asJson();
SocialUser user = new SocialUser(profile.get("id").toString());
user.setUsername(profile.getString("login"));
user.setFirstName(profile.optString("name"));
user.setEmail(profile.optString("email"));
return user;
} catch (Exception e) {
throw new SocialProviderException(e);
}
}
}
@@ -0,0 +1 @@
org.keycloak.social.github.GitHubProvider