Merge pull request #956 from pedroigor/master
[KEYCLOAK-992] - Storing twitter tokens.
This commit is contained in:
commit
e84ae5e68d
1 changed files with 19 additions and 6 deletions
|
@ -31,8 +31,10 @@ import org.keycloak.models.FederatedIdentityModel;
|
|||
import org.keycloak.social.SocialIdentityProvider;
|
||||
import twitter4j.Twitter;
|
||||
import twitter4j.TwitterFactory;
|
||||
import twitter4j.auth.AccessToken;
|
||||
import twitter4j.auth.RequestToken;
|
||||
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.MultivaluedMap;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.UriInfo;
|
||||
|
@ -98,15 +100,26 @@ public class TwitterIdentityProvider extends AbstractIdentityProvider<OAuth2Iden
|
|||
|
||||
RequestToken requestToken = new RequestToken(twitterToken, twitterSecret);
|
||||
|
||||
twitter.getOAuthAccessToken(requestToken, verifier);
|
||||
AccessToken oAuthAccessToken = twitter.getOAuthAccessToken(requestToken, verifier);
|
||||
twitter4j.User twitterUser = twitter.verifyCredentials();
|
||||
|
||||
FederatedIdentity user = new FederatedIdentity(Long.toString(twitterUser.getId()));
|
||||
FederatedIdentity identity = new FederatedIdentity(Long.toString(twitterUser.getId()));
|
||||
|
||||
user.setUsername(twitterUser.getScreenName());
|
||||
user.setName(twitterUser.getName());
|
||||
identity.setUsername(twitterUser.getScreenName());
|
||||
identity.setName(twitterUser.getName());
|
||||
|
||||
return AuthenticationResponse.end(user);
|
||||
StringBuilder tokenBuilder = new StringBuilder();
|
||||
|
||||
tokenBuilder.append("{");
|
||||
tokenBuilder.append("\"oauth_token\":").append("\"").append(oAuthAccessToken.getToken()).append("\"").append(",");
|
||||
tokenBuilder.append("\"oauth_token_secret\":").append("\"").append(oAuthAccessToken.getTokenSecret()).append("\"").append(",");
|
||||
tokenBuilder.append("\"screen_name\":").append("\"").append(oAuthAccessToken.getScreenName()).append("\"").append(",");
|
||||
tokenBuilder.append("\"user_id\":").append("\"").append(oAuthAccessToken.getUserId()).append("\"");
|
||||
tokenBuilder.append("}");
|
||||
|
||||
identity.setToken(tokenBuilder.toString());
|
||||
|
||||
return AuthenticationResponse.end(identity);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
@ -114,6 +127,6 @@ public class TwitterIdentityProvider extends AbstractIdentityProvider<OAuth2Iden
|
|||
|
||||
@Override
|
||||
public Response retrieveToken(FederatedIdentityModel identity) {
|
||||
return Response.noContent().build();
|
||||
return Response.ok(identity.getToken()).type(MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue