Как аутентифицировать пользователя только один раз?
У меня есть приложение, которое требует проверки подлинности с сервера. Я должен использовать класс, который расширил класс Authenticator, чтобы устанавливать этот уровень кода каждый раз, когда я пытаюсь получить услугу с этого сервера.
Authenticator.setDefault (новый UserAuthenticator("my_mail", "my_password"));
и это класс UserAuthenticator:
import java.net.Authenticator;
import java.net.PasswordAuthentication;
import android.util.Log;
public class UserAuthenticator extends Authenticator
{
//counter used to iterate login process
private int redirect;
private String email;
private String password;
/**
* UserAuthenticator constructor
*/
public UserAuthenticator(String mail, String pwd)
{
this.email = mail;
this.password = pwd;
Log.d("email+password", email+password);
}
/**
* <p>Called when password authorization is needed</p>
*
*/
@Override
protected PasswordAuthentication getPasswordAuthentication()
{
//to catch login redirect exception
if(redirect>0){
return null;
}else{
redirect ++;
}
/**
* <p>Return the information (a data holder that is used by
* Authenticator</p
*/
return new PasswordAuthentication(email,
password.toCharArray());
}
public PasswordAuthentication authenticationResult()
{
return getPasswordAuthentication();
}
}
Есть ли способ создать экземпляр этого класса только один раз, чтобы затем использовать его (пользователь остается аутентифицированным) во всех остальных действиях.
Я имею в виду, что хочу аутентифицировать пользователя один раз и не повторять создание экземпляров этого класса каждый раз, когда мне нужно запросить сервер.
PS: я пытался сделать его статическим внутренним классом, но он не работает без его экземпляра каждый раз. Возможно, в Android есть другой путь, а не класс Authenticator, потому что я знал этот класс в веб-приложениях Java.