Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class SharedPreferencesCredentialsProvider implements CredentialsProvider {
- private static final String USERNAME_KEY = "USERNAME";
- private static final String PASSWORD_KEY = "PASSWORD";
- private SecuredPreferences securePrefs;
- public SharedPreferencesCredentialsProvider(Context context) {
- securePrefs = new SecuredPreferences(context);
- }
- @Override
- public Credentials provideCredentials() throws IdentityAuthenticationException {
- String username = securePrefs.getString(USERNAME_KEY, null);
- String password = securePrefs.getString(PASSWORD_KEY, null);
- if(username == null || password == null) {
- return null;
- }
- return new Credentials(username, password);
- }
- @Override
- public void saveCredentials(Credentials credentials) throws IdentityAuthenticationException {
- String username = credentials.getUsername();
- String password = credentials.getPassword();
- if (username != null && password != null) {
- SecuredPreferences.Editor editor = securePrefs.edit();
- editor.putString(USERNAME_KEY, credentials.getUsername());
- editor.putString(PASSWORD_KEY, credentials.getPassword());
- editor.apply();
- }
- }
- @Override
- public void clearCredentials() throws IdentityAuthenticationException {
- SecuredPreferences.Editor editor = securePrefs.edit();
- editor.remove(USERNAME_KEY);
- editor.remove(PASSWORD_KEY);
- editor.apply();
- }
- }
- public class ApiClientProvider {
- private DefaultIdentityAuthClient identityAuthClient;
- .
- .
- .
- private void initIdentityAuthClient() {
- this.identityAuthClient = new DefaultIdentityAuthClient(this.context.getString(R.string.ids_endpoint));
- AuthenticationProvider authenticationProvider = new SharedPreferencesAuthenticationProvider(this.context);
- this.identityAuthClient.setAuthenticationProvider(authenticationProvider);
- CredentialsProvider credentialsProvider = new SharedPreferencesCredentialsProvider(this.context);
- this.identityAuthClient.setCredentialsProvider(credentialsProvider);
- }
- public DefaultIdentityAuthClient getIdentityAuthClient() {
- return identityAuthClient;
- }
- public TripStoreTemplate getTripStoreTemplate() {
- return tripStoreTemplate;
- }
- public void clearAuthentication() {
- identityAuthClient.getAuthenticationProvider().clearAuthentication();
- }
- public void clearCredentials() {
- identityAuthClient.getCredentialsProvider().clearCredentials();
- }
- public Credentials provideCredentials() {
- return identityAuthClient.getCredentialsProvider().provideCredentials();
- }
- public void saveCredentials(Credentials credentials) {
- identityAuthClient.getCredentialsProvider().saveCredentials(credentials);
- }
- public void saveAuthentication(Authentication authentication) {
- identityAuthClient.getAuthenticationProvider().saveAuthentication(authentication);
- }
- //Login
- protected void login() {
- String username = this.username.getText().toString().trim();
- String password = this.password.getText().toString();
- try {
- AuthenticationResult authenticationResult = apiClientProvider.getIdentityAuthClient().login(username, password);
- if (authenticationResult.succeed()) {
- onSuccess(authenticationResult.getAuthentication());
- } else {
- onFailure(authenticationResult.getError().getErrorCode().getCode());
- }
- } catch (Exception ex) {
- onFailure(ex);
- } finally {
- onFinish();
- }
- }
- .
- .
- .
- protected void onSuccess(Authentication authentication) {
- String usernameString = username.getText().toString().trim();
- String passwordString = password.getText().toString().trim();
- String userUuid = authentication.getUserUuid();
- Credentials credentials = new Credentials(usernameString, passwordString);
- if (rememberMe.isChecked()) {
- apiClientProvider.saveCredentials(credentials);
- } else {
- apiClientProvider.getIdentityAuthClient().setAuthenticationProvider(new MemoryAuthenticationProvider());
- apiClientProvider.getIdentityAuthClient().setCredentialsProvider(new MemoryCredentialsProvider(credentials));
- }
- apiClientProvider.saveAuthentication(authentication);
- saveCurrentUser(usernameString, userUuid);
- }
- //forgot password
- protected void requestForgotPassword() {
- String usernameString = forgotPasswordEmail.getText().toString().trim();
- try {
- apiClientProvider.getIdentityAuthClient().forgotPassword(usernameString);
- onSuccess();
- } catch (Exception e) {
- onFailure(e);
- } finally {
- onFinish();
- }
- }
- //Logout
- public void doLogoutActions(Context context) {
- .
- .
- apiClientProvider.clearAuthentication();
- apiClientProvider.clearCredentials();
- .
- .
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement