Android Open Source - jive-android-core-sdk-example Git Hub Authentication Model From Project Back to project page jive-android-core-sdk-example .
License The source code is released under:
Apache License
If you think the Android project jive-android-core-sdk-example listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.jivesoftware.example.github.authentication;
/ / w w w . j a v a 2 s . c o m
import com.jivesoftware.example.Constants;
import com.jivesoftware.example.exceptions.TwoFactorException;
import com.jivesoftware.example.github.GitHubBasicAuthRequestInterceptor;
import com.jivesoftware.example.github.service.IGitHubAuthService;
import com.jivesoftware.example.github.dao.Authorization;
import com.jivesoftware.example.github.dao.AuthorizationRequest;
import com.jivesoftware.example.github.dao.User;
import com.jivesoftware.example.listenable.TypeListenable;
import com.jivesoftware.example.utils.PersistedKeyValueStore;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.Arrays;
import static com.jivesoftware.example.github.authentication.GitHubAuthenticationModel.Type.BASIC_AUTHENTICATION_FAILURE;
import static com.jivesoftware.example.github.authentication.GitHubAuthenticationModel.Type.BASIC_AUTHENTICATION_SUCCESS;
import static com.jivesoftware.example.github.authentication.GitHubAuthenticationModel.Type.BASIC_AUTHENTICATION_TWO_FACTOR_REQUIRED;
import static com.jivesoftware.example.github.authentication.GitHubAuthenticationModel.Type.OAUTH_AUTHENTICATION_FAILURE;
import static com.jivesoftware.example.github.authentication.GitHubAuthenticationModel.Type.OAUTH_AUTHENTICATION_SUCCESS;
/**
* Created by mark.schisler on 8/28/14.
*/
@Singleton
public class GitHubAuthenticationModel {
public final TypeListenable listenable;
private final GitHubBasicAuthRequestInterceptor gitHubBasicAuthRequestInterceptor;
private final IGitHubAuthService gitHubAuthService;
private final PersistedKeyValueStore keyValueStore;
public enum Type {
BASIC_AUTHENTICATION_SUCCESS,
BASIC_AUTHENTICATION_FAILURE,
BASIC_AUTHENTICATION_TWO_FACTOR_REQUIRED,
OAUTH_AUTHENTICATION_SUCCESS,
OAUTH_AUTHENTICATION_FAILURE
}
@Inject
public GitHubAuthenticationModel(GitHubBasicAuthRequestInterceptor interceptor, IGitHubAuthService gitHubAuthService, PersistedKeyValueStore keyValueStore, TypeListenable typeListenable) {
this.listenable = typeListenable;
this.gitHubBasicAuthRequestInterceptor = interceptor;
this.gitHubAuthService = gitHubAuthService;
this.keyValueStore = keyValueStore;
}
public void obtainBasicAuth() {
gitHubAuthService.getSelf(new Callback<User>() {
@Override
public void success(User user, Response response) {
listenable.post(user, BASIC_AUTHENTICATION_SUCCESS);
}
@Override
public void failure(RetrofitError error) {
if (error.getCause() instanceof TwoFactorException) {
listenable.post(BASIC_AUTHENTICATION_TWO_FACTOR_REQUIRED);
} else {
listenable.post(BASIC_AUTHENTICATION_FAILURE);
}
}
});
}
public void obtainOauthToken() {
AuthorizationRequest request = new AuthorizationRequest();
request.clientId = Constants.OAUTH_CLIENT_ID;
request.clientSecret = Constants.OAUTH_CLIENT_SECRET;
request.note = getClass().getName();
request.scopes = new String [2];
Arrays.asList("repo" , "admin:org" ).toArray(request.scopes);
gitHubAuthService.postAuthorization(request, new Callback<Authorization>() {
@Override
public void success(Authorization authorization, Response response) {
keyValueStore.putGithubToken(authorization.token);
listenable.post(OAUTH_AUTHENTICATION_SUCCESS);
}
@Override
public void failure(RetrofitError error) {
listenable.post(OAUTH_AUTHENTICATION_FAILURE);
}
});
}
public void setUsername(String username) {
gitHubBasicAuthRequestInterceptor.setUsername(username);
}
public void setPassword(String password) {
gitHubBasicAuthRequestInterceptor.setPassword(password);
}
public void setOnetime(String onetime) {
gitHubBasicAuthRequestInterceptor.setOtp(onetime);
}
public boolean doTokensExist() {
return keyValueStore.doTokensExist();
}
}
Java Source Code List com.jivesoftware.example.BuildConfig.java com.jivesoftware.example.Constants.java com.jivesoftware.example.collaborators.CollaboratorActivity.java com.jivesoftware.example.collaborators.CollaboratorModel.java com.jivesoftware.example.collaborators.CollaboratorPresenter.java com.jivesoftware.example.collaborators.CollaboratorsView.java com.jivesoftware.example.collaborators.UserView.java com.jivesoftware.example.collaborators.UsersAdapter.java com.jivesoftware.example.collaborators.events.CollaboratorDeleteEvent.java com.jivesoftware.example.collaborators.events.CollaboratorSelectedEvent.java com.jivesoftware.example.destroyer.Destroyer.java com.jivesoftware.example.destroyer.IDestroyable.java com.jivesoftware.example.exceptions.AuthenticationException.java com.jivesoftware.example.exceptions.TwoFactorException.java com.jivesoftware.example.followers.FollowersActivity.java com.jivesoftware.example.followers.FollowersModel.java com.jivesoftware.example.followers.FollowersPresenter.java com.jivesoftware.example.followers.FollowersView.java com.jivesoftware.example.followers.GitHubUsersModel.java com.jivesoftware.example.followers.events.FollowerSelected.java com.jivesoftware.example.followers.events.FollowersUpdate.java com.jivesoftware.example.github.AuthenticationTokenFactory.java com.jivesoftware.example.github.GitHubBasicAuthRequestInterceptor.java com.jivesoftware.example.github.GitHubOauthRequestInterceptor.java com.jivesoftware.example.github.GitHubServiceFactory.java com.jivesoftware.example.github.authentication.GitHubAuthenticationActivity.java com.jivesoftware.example.github.authentication.GitHubAuthenticationErrorHandler.java com.jivesoftware.example.github.authentication.GitHubAuthenticationModel.java com.jivesoftware.example.github.authentication.GitHubAuthenticationPresenter.java com.jivesoftware.example.github.authentication.GitHubAuthenticationView.java com.jivesoftware.example.github.authentication.events.GitHubLoginPressed.java com.jivesoftware.example.github.dao.AuthorizationRequest.java com.jivesoftware.example.github.dao.Authorization.java com.jivesoftware.example.github.dao.GitHubList.java com.jivesoftware.example.github.dao.Organization.java com.jivesoftware.example.github.dao.Owner.java com.jivesoftware.example.github.dao.Repository.java com.jivesoftware.example.github.dao.Team.java com.jivesoftware.example.github.dao.User.java com.jivesoftware.example.github.service.IGitHubAuthService.java com.jivesoftware.example.github.service.IGitHubRepoService.java com.jivesoftware.example.github.service.IGitHubUserService.java com.jivesoftware.example.injection.BaseModule.java com.jivesoftware.example.jive.authentication.JiveAuthenticationActivity.java com.jivesoftware.example.jive.authentication.JiveAuthenticationModel.java com.jivesoftware.example.jive.authentication.JiveAuthenticationPresenter.java com.jivesoftware.example.jive.authentication.JiveAuthenticationView.java com.jivesoftware.example.jive.authentication.events.JiveLoginPressed.java com.jivesoftware.example.jive.dao.JiveConnection.java com.jivesoftware.example.jive.dao.JiveTokenProvider.java com.jivesoftware.example.listenable.IListener.java com.jivesoftware.example.listenable.ITypeListenable.java com.jivesoftware.example.listenable.IValueListener.java com.jivesoftware.example.listenable.TypeListenable.java com.jivesoftware.example.profile.ProfileActivity.java com.jivesoftware.example.profile.ProfileModel.java com.jivesoftware.example.profile.ProfilePresenter.java com.jivesoftware.example.profile.ProfileView.java com.jivesoftware.example.profiles.ProfilesModel.java com.jivesoftware.example.profiles.ProfilesPresenter.java com.jivesoftware.example.profiles.ProfilesView.java com.jivesoftware.example.profiles.events.GitHubProfileEvent.java com.jivesoftware.example.profiles.events.JiveProfileEvent.java com.jivesoftware.example.repositories.RepositoriesActivity.java com.jivesoftware.example.repositories.RepositoriesModel.java com.jivesoftware.example.repositories.RepositoriesPresenter.java com.jivesoftware.example.repositories.RepositoriesView.java com.jivesoftware.example.repositories.RepositoryAdapter.java com.jivesoftware.example.repositories.RepositoryView.java com.jivesoftware.example.team.TeamCollaboratorsActivity.java com.jivesoftware.example.team.TeamCollaboratorsModel.java com.jivesoftware.example.team.TeamCollaboratorsPresenter.java com.jivesoftware.example.team.TeamCollaboratorsView.java com.jivesoftware.example.team.events.TeamCollaboratorLongPressed.java com.jivesoftware.example.team.events.TeamCollaboratorPressed.java com.jivesoftware.example.team.events.TeamCollaborators.java com.jivesoftware.example.teams.TeamView.java com.jivesoftware.example.teams.TeamsActivity.java com.jivesoftware.example.teams.TeamsAdapter.java com.jivesoftware.example.teams.TeamsModel.java com.jivesoftware.example.teams.TeamsPresenter.java com.jivesoftware.example.teams.TeamsView.java com.jivesoftware.example.teams.events.TeamPressed.java com.jivesoftware.example.utils.ActivityLauncher.java com.jivesoftware.example.utils.AuthenticatedDownloader.java com.jivesoftware.example.utils.AuthorizationReset.java com.jivesoftware.example.utils.BackgroundRunner.java com.jivesoftware.example.utils.BackgroundThread.java com.jivesoftware.example.utils.IntentExtraNames.java com.jivesoftware.example.utils.IntentUtils.java com.jivesoftware.example.utils.JivePicasso.java com.jivesoftware.example.utils.Joiner.java com.jivesoftware.example.utils.PersistedKeyValueStore.java com.jivesoftware.example.utils.ToastMaker.java com.jivesoftware.example.utils.URLUtils.java