public class LoginService extends Service
LoginService implementa o serviço de login de um
usuário. É responsável pela autenticação do usuário no sistema e
gerenciamento da sessão.
Esse serviço pode ser observado para eventos de logout.
LogoutEvent| Modifier and Type | Field and Description |
|---|---|
static String |
LDAP_LOGIN_METHOD
Valor que indica que o método de autenticação usará servidores LDAP.
|
static String |
LOCAL_LOGIN_METHOD
Valor que indica que o método de autenticação usará senhas próprias.
|
protected Hashtable<csbase.logic.SecureKey,ServerSession> |
loggedUsers
Guarda a sessão dos usuários que estão logados no servidor.
|
static String |
LOGIN_METHOD
Nome da propriedade que indica o método de autenticação.
|
static String |
MAX_SIMULTANEOUS_SESSIONS
Propriedade que armazena o número máximo de sessoes simultâneas para um
mesmo usuário (0=infinito)
|
static String |
PRE_LOGIN_DELAY
Nome da propriedade que indica o tempo para expiração de uma solicitação de
pré-login.
|
protected Hashtable<String,csbase.server.services.loginservice.LoginService.PreLoginInfo> |
preLoggedUsers
Essa tabela armazena as referência para os usuários que realizaram uma
operação de preLogin para posterior login.
|
static String |
REAL_USER_ATTRIBUTE
Atributo que indica o usuário real que está fazendo o login para um outro
usuário (sudo)
|
static String |
SERVICE_NAME
Nome do serviço para o
ServiceManager |
static String |
VOMS_LOGIN_METHOD
Valor que indica que o método de autenticação usará um validador de proxies VOMS.
|
| Modifier | Constructor and Description |
|---|---|
protected |
LoginService()
Constrói a instância do serviço.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addListener(LoginServiceListener listener)
Adiciona um listener ao serviço.
|
boolean |
canChangePasswords()
Indica se o servidor permite a troca de senhas.
|
csbase.logic.User |
checkLogin(String login,
String password)
Verifica o login de um usuário.
|
csbase.logic.User |
checkLogin(String login,
String password,
Map<String,Serializable> attributes)
Verifica o login de um usuário.
|
static void |
createService()
Constrói a instância do serviço.
|
protected csbase.logic.Session |
createSession(csbase.logic.User user,
Locale locale)
Cria a sessão do usuário para a camada do cliente e inicia uma sessão do
usuário no servidor.
|
protected void |
fireConnectionLost(String login,
Object sessionKey,
String systemName,
long time)
Notifica todos listeners que a conexão com um usuário foi perdida
|
protected void |
fireSessionCreated(String login,
Object sessionKey,
long time)
Notifica todos listeners que uma sessão foi criada.
|
protected void |
fireSystemNameSet(String login,
Object sessionKey,
String systemName,
long time)
Notifica todos listeners que o nome do sistema foi definido
|
protected void |
fireUserLoggingOut(String login,
Object sessionKey,
String systemName,
long time)
Notifica todos listeners que um usuário está efetando um logout.
|
static LoginService |
getInstance()
Obtém a instância Singleton do serviço de login.
|
csbase.logic.UserOutline[] |
getLoggedUsers()
Obtém os usuários atualmente conectados ao sistema.
|
Map<String,Integer> |
getLoginStats(boolean succeeded)
Obtém estatísticas sobre os logins.
|
PublicKey |
getPublicKey()
Retorna a chave pública para criptografar a senha do login.
|
String |
getRealUserForLog(Object key)
Retorna uma string para logar o usuário real (se houver) ou string vazia,
caso contrário
|
Map<String,Serializable> |
getSessionAttributes(Object key) |
<T> T |
getSessionProperty(Object key,
String propertyName)
Obtém o valor de uma propriedade da sessão especificada.
|
TimeZone |
getTimeZone()
Obtém da sessão do usuário o
TimeZone do cliente pelo qual ele se
logou. |
csbase.logic.User |
getUserByKey(Object key)
Obtém referência para o usuário especificado.
|
Locale |
getUserSessionLocale(Object key)
Informa o Locale de uma sessão.
|
protected boolean |
has2Update(Object arg,
Object event)
Todos observadores serão sempre notificados.
|
void |
initService()
Inicialização do serviço.
|
void |
install()
Registra no servidor um observador.
|
boolean |
isLocalLogin()
Indica se o método de autenticação do servidor é local ou não.
|
boolean |
isValidSession(Object sessionKey)
Informa se uma dada sessão é válida.
|
csbase.logic.Session |
login(csbase.logic.openbus.OpenBusLoginToken token,
Locale locale,
TimeZone timeZone)
Executa o login de um usuário através de uma credencial do OpenBus.
|
csbase.logic.Session |
login(csbase.logic.ServerURI referedServerURI,
Map<String,Serializable> attr,
boolean copyServerSessionAttrs,
Object sessionkey,
String login,
String delegatedLogin,
Locale locale,
TimeZone tz)
Executa o login de um usuário que é validado através de uma referência de
outro servidor onde ele deve ter uma sessão válida.
|
csbase.logic.Session |
login(String token)
Executa o login de um usuário que fez preLogin.
|
csbase.logic.Session |
login(String serverName,
byte[] signedServerName,
Locale locale)
Executa o login de um servidor local.
|
csbase.logic.Session |
login(String login,
csbase.logic.EncryptedPassword encryptedPassword,
Locale locale)
Executa o login de um usuário via login e senha.
|
csbase.logic.Session |
login(String login,
csbase.logic.EncryptedPassword encryptedPassword,
Locale locale,
String delegatedLogin)
Executa o login de um usuário via login e senha com a possibilidade de
delegar o login a um outro usuário, para isso o usuário deverá ser um
super-usuário do sistema que significa ter permissão de super-usuário(
SuperUserPermission). |
csbase.logic.Session |
login(String login,
csbase.logic.EncryptedPassword encryptedPassword,
Locale locale,
String delegatedLogin,
TimeZone timeZone,
Map<String,Serializable> params)
Executa o login de um usuário via login e senha com a possibilidade de
delegar o login a um outro usuário, para isso o usuário deverá ser um
super-usuário do sistema que significa ter permissão de super-usuário(
SuperUserPermission). |
csbase.logic.Session |
login(String login,
csbase.logic.EncryptedPassword encryptedPassword,
Locale locale,
TimeZone timeZone)
Executa o login de um usuário via login e senha.
|
csbase.logic.Session |
login(String token,
TimeZone timeZone)
Executa o login de um usuário que fez preLogin.
|
void |
logout(Object sessionKey)
Faz o logout de um usuário do sistema.
|
csbase.logic.PreLoginData |
preLogin(String login,
String password,
Locale locale)
Autentica um usuário no sistema e cria um token para ser usado como
identificação em um posterior login onde não há a informação de usuário e
senha.
|
csbase.logic.PreLoginData |
preLogin(String login,
String password,
Locale locale,
Map<String,Serializable> attributes)
Autentica um usuário no sistema e cria um token para ser usado como
identificação em um posterior login onde não há a informação de usuário e
senha.
|
csbase.logic.PreLoginData |
preLogin(String login,
String password,
Locale locale,
String delegatedLogin)
Autentica um usuário no sistema e cria um token para ser usado como
identificação em um posterior login onde não há a informação de usuário e
senha.
|
csbase.logic.PreLoginData |
preLogin(String login,
String password,
Locale locale,
String delegatedLogin,
Remote control,
Serializable userData)
Autentica um usuário no sistema e cria um token para ser usado como
identificação em um posterior login onde não há a informação de usuário e
senha.
|
boolean |
removeListener(LoginServiceListener listener)
Remove um listener do serviço.
|
void |
removeSessionProperty(Object key,
String propertyName)
Remove uma propriedade da sessão especificada.
|
void |
setSessionProperty(Object key,
String propertyName,
Serializable propertyValue)
Atribui um valor a uma propriedade da sessão especificada.
|
void |
setSystemName(Object sessionKey,
String systemName)
Define o nome do sistema onde uma determinada sessão está sendo usada.
|
void |
shutdownService()
Término do serviço.
|
void |
uninstall()
Remove do servidor o registro desse observador.
|
getBooleanProperty, getDefaultLocale, getDoubleProperty, getExternalPropertyFile, getFormattedString, getFormattedString, getInitializationDependencies, getInstance, getIntProperty, getKey, getLongProperty, getName, getOptionalString, getOptionalString, getOSPropertyPath, getSenderName, getServices, getString, getString, getStringListProperty, getStringProperty, getSystemId, getThreadLocale, getUser, getUserPermission, hasProperty, incrCounter, isActive, isEnabled, isInternalServerRequest, isLoggingNotifications, isPropertyNull, logNotification, setEnabled, setKey, setSystemId, setUserId, setUserLocalehandleException, handleFatalErrorpublic static final String SERVICE_NAME
ServiceManagerpublic static final String LOGIN_METHOD
public static final String LOCAL_LOGIN_METHOD
public static final String LDAP_LOGIN_METHOD
public static final String VOMS_LOGIN_METHOD
public static final String PRE_LOGIN_DELAY
public static final String MAX_SIMULTANEOUS_SESSIONS
protected Hashtable<csbase.logic.SecureKey,ServerSession> loggedUsers
SecureKey. A estrutura é a seguinte: chave - hash de
propriedades da sessão. Ex: { (chave1 - { (USER - user1), (LOCALE -
locale) } ) }public static final String REAL_USER_ATTRIBUTE
protected Hashtable<String,csbase.server.services.loginservice.LoginService.PreLoginInfo> preLoggedUsers
preLogin(String, String, Locale),
login(String)protected LoginService()
throws ServerException
ServerException - em caso de erro na construção.public static void createService()
throws ServerException
ServerException - caso ocorra um problema na instanciação.public static LoginService getInstance()
public PublicKey getPublicKey()
public void addListener(LoginServiceListener listener)
listener - O listener a ser adicionado.IllegalArgumentException - Caso o listener esteja nulo.public boolean removeListener(LoginServiceListener listener)
listener - O listener a ser removido.IllegalArgumentException - Caso o listener esteja nulo.protected void fireSessionCreated(String login, Object sessionKey, long time)
login - Login do usuáriosessionKey - Chave da sessão do usuáriotime - Hora em que ocorreu o evento representado em milisegundosprotected void fireUserLoggingOut(String login, Object sessionKey, String systemName, long time)
login - Login do usuáriosessionKey - Chave da sessão do usuáriosystemName - Nome do sistema definido pelo usuário.time - Hora em que ocorreu o evento representado em milisegundosprotected void fireConnectionLost(String login, Object sessionKey, String systemName, long time)
login - Login do usuário que perdeu a conexãosessionKey - Chave da sessão do usuáriosystemName - Nome do sistema definido pelo usuário ou
NULL se não tiver sido definido.time - Hora em que ocorreu o evento representado em milisegundosprotected void fireSystemNameSet(String login, Object sessionKey, String systemName, long time)
login - Login do usuáriosessionKey - Chave da sessão do usuáriosystemName - Nome do sistema definido pelo usuáriotime - Hora em que ocorreu o evento representado em milisegundospublic void initService()
throws ServerException
initService in class ServiceServerException - se ocorrer um erro na inicializaçãopublic void install()
throws RemoteException
RemoteException - Em caso de falha.public void shutdownService()
throws ServerException
shutdownService in class ServiceServerException - caso ocorra um problema na finalização.public void uninstall()
throws RemoteException
RemoteException - Em caso de falha.protected boolean has2Update(Object arg, Object event)
has2Update in class csbase.remote.RemoteObjectObservablearg - Argumento do Observadorevent - Evento gerado para notificar o observadorpublic boolean canChangePasswords()
true se a alteração de senhas for permitida,
false caso contrário.public boolean isLocalLogin()
true se os usuários forem autenticados localmente,
false caso contrário.public csbase.logic.PreLoginData preLogin(String login, String password, Locale locale)
login - O identificador do usuário que deseja fazer seu login.password - A senha do respectivo usuário.locale - A Locale que o usuário deseja utilizar no posterior login.null se o login e/ou senha forem inválidos.login(String)public csbase.logic.PreLoginData preLogin(String login, String password, Locale locale, Map<String,Serializable> attributes)
login - O identificador do usuário que deseja fazer seu login.password - A senha do respectivo usuário.locale - A Locale que o usuário deseja utilizar no posterior login.attributes - Os atributos da sessão do usuário.null se o login e/ou senha forem inválidos.IllegalArgumentException - se login for nulo ou
password for nulo ou locale for nulo.login(String)public csbase.logic.PreLoginData preLogin(String login, String password, Locale locale, String delegatedLogin, Remote control, Serializable userData)
Autentica um usuário no sistema e cria um token para ser usado como identificação em um posterior login onde não há a informação de usuário e senha.
O usuário é autenticado por um super-usuário, que é um usuário com
permissão de super-usuário(SuperUserPermission).
Autentica e cria no servidor uma sessão do usuário delegado.
OBS: O Administrador(admin) não precisa de permissão de super-usuário para delegar um outro usuário e, por questões de segurança, não pode ser um usuário delegado por nenhum super-usuário.
login - o identificador do super-usuário.password - a senha do super-usuário.locale - A Locale que será usado no login do usuário delegado.delegatedLogin - login do usuário que será delegado pelo super-usuário
sem a necessidade de senha.control - Objeto de controle.userData - Identificação do usuário.public csbase.logic.PreLoginData preLogin(String login, String password, Locale locale, String delegatedLogin)
Autentica um usuário no sistema e cria um token para ser usado como identificação em um posterior login onde não há a informação de usuário e senha.
O usuário é autenticado por um super-usuário, que é um usuário com
permissão de super-usuário(SuperUserPermission).
Autentica e cria no servidor uma sessão do usuário delegado.
OBS: O Administrador(admin) não precisa de permissão de super-usuário para delegar um outro usuário e, por questões de segurança, não pode ser um usuário delegado por nenhum super-usuário.
login - o identificador do super-usuário.password - a senha do super-usuário.locale - A Locale que será usado no login do usuário delegado.delegatedLogin - login do usuário que será delegado pelo super-usuário
sem a necessidade de senha.public csbase.logic.Session login(String login, csbase.logic.EncryptedPassword encryptedPassword, Locale locale)
Atenção: Para cada ação de login deve haver uma ação de logout associada.
login - o identificador do usuário que deseja fazer seu login.encryptedPassword - a senha do respectivo usuário.locale - A Locale que o usuário escolheu no login.null se chave e/ou senha foram
inválidoslogout(Object)public csbase.logic.Session login(String login, csbase.logic.EncryptedPassword encryptedPassword, Locale locale, TimeZone timeZone)
TimeZone do usuário.
Atenção: Para cada ação de login deve haver uma ação de logout associada.
login - o identificador do usuário que deseja fazer seu login.encryptedPassword - a senha do respectivo usuário.locale - A Locale que o usuário escolheu no login.timeZone - TimeZone do cliente pelo qual o usuário se logou.null se chave e/ou senha foram
inválidoslogout(Object)public csbase.logic.Session login(String login, csbase.logic.EncryptedPassword encryptedPassword, Locale locale, String delegatedLogin)
SuperUserPermission). Autentica e cria no servidor uma
sessão do usuário delegado. Pode ser utilizado para se logar a primeira vez
ou após uma queda do servidor. OBS: O Administrador(admin) não precisa de
permissão de super-usuário para delegar um outro usuário e, por questões de
segurança, não pode ser um usuário delegado por nenhum super-usuário.
Atenção: Para cada ação de login deve haver uma ação de logout associada.
login - o identificador do super-usuário.encryptedPassword - a senha do super-usuário.locale - A Locale que será usado no login do usuário delegado.delegatedLogin - login do usuário que será delegado pelo super-usuário
sem a necessidade de senha.null se chave e/ou senha foram
inválidosIllegalArgumentException - se login for nulo ou
password for nulo ou locale for nulo.SuperUserPermission,
logout(Object)public csbase.logic.Session login(String login, csbase.logic.EncryptedPassword encryptedPassword, Locale locale, String delegatedLogin, TimeZone timeZone, Map<String,Serializable> params)
SuperUserPermission). Autentica e cria no servidor uma
sessão do usuário delegado. Pode ser utilizado para se logar a primeira vez
ou após uma queda do servidor. OBS: O Administrador(admin) não precisa de
permissão de super-usuário para delegar um outro usuário e, por questões de
segurança, não pode ser um usuário delegado por nenhum super-usuário.
Armazena na sessão o TimeZone do usuário.
Atenção: Para cada ação de login deve haver uma ação de logout associada.
login - o identificador do super-usuário.encryptedPassword - a senha do super-usuário.locale - A Locale que será usado no login do usuário delegado.delegatedLogin - login do usuário que será delegado pelo super-usuário
sem a necessidade de senha.timeZone - TimeZone do cliente pelo qual o usuário se logou.params - Parâmetros que serão armazenados na sessão do usuárionull se chave e/ou senha foram
inválidosIllegalArgumentException - se login for nulo ou
password for nulo ou locale for nulo.SuperUserPermission,
logout(Object)public csbase.logic.Session login(csbase.logic.ServerURI referedServerURI,
Map<String,Serializable> attr,
boolean copyServerSessionAttrs,
Object sessionkey,
String login,
String delegatedLogin,
Locale locale,
TimeZone tz)
referedServerURI - A URI do servidor de referência para validaçãoattr - Os atributos para serem armazenados na sessão do usuáriosessionkey - A chave da sessão a ser validada no servidor de
referênciacopyServerSessionAttrs - se true copia os atributos de sessão do
servidor de referência para a sessão criada nesse servidorlogin - O login do usuáriodelegatedLogin - O login do usuário para delegação ou null para o caso
sem delegaçãolocale - O Localetz - O Timezonepublic csbase.logic.User checkLogin(String login, String password)
login - o identificador do usuário que deseja fazer seu login.password - a senha digitada pelo usuário.public csbase.logic.User checkLogin(String login, String password, Map<String,Serializable> attributes)
login - o identificador do usuário que deseja fazer seu login.password - a senha digitada pelo usuário.attributes - os atributos.public csbase.logic.Session login(String token)
Atenção: Para cada ação de login deve haver uma ação de logout associada.
token - Identificação de um pré-login.null se chave e/ou senha foram
inválidosIllegalArgumentException - se token for nullpreLogin(String, String, Locale),
logout(Object)public csbase.logic.Session login(String token, TimeZone timeZone)
TimeZone do usuário.
Atenção: Para cada ação de login deve haver uma ação de logout associada.
token - Identificação de um pré-login.timeZone - TimeZone do cliente pelo qual o usuário se logou.null se chave e/ou senha foram
inválidosIllegalArgumentException - se token for nullpreLogin(String, String, Locale),
logout(Object)public csbase.logic.Session login(String serverName, byte[] signedServerName, Locale locale)
Atenção: Para cada ação de login deve haver uma ação de logout associada.
serverName - O nome do servidor localsignedServerName - O nome do servidor local, assinado.locale - O locale do servidor local.null se chave e/ou senha
foram inválidosIllegalArgumentException - em caso de nulidade nos argumentos.logout(Object)public csbase.logic.Session login(csbase.logic.openbus.OpenBusLoginToken token,
Locale locale,
TimeZone timeZone)
Atenção: Para cada ação de login deve haver uma ação de logout associada.
token - O token de login no Openbus.locale - A Locale que o usuário escolheu no login.timeZone - TimeZone do cliente pelo qual o usuário se logou.null se chave e/ou senha foram
inválidoslogout(Object)protected csbase.logic.Session createSession(csbase.logic.User user,
Locale locale)
user - Usuário da sessão corrente.locale - Locale da sessão corrente.public boolean isValidSession(Object sessionKey)
sessionKey - Chave da sessão.public void logout(Object sessionKey)
sessionKey - O usuário que está efetuando o logout.IllegalArgumentException - em caso de nulidade nos argumentos.LogoutEventpublic Locale getUserSessionLocale(Object key)
key - A chave da sessão.public csbase.logic.UserOutline[] getLoggedUsers()
public csbase.logic.User getUserByKey(Object key)
key - chave para a sessão do usuário.User representando o usuário. null se
chave não representa uma sessão válida.public <T> T getSessionProperty(Object key, String propertyName)
T - tipo da propriedade.key - chave para a sessão do usuário.propertyName - nome da propriedade a ser buscada.public void setSessionProperty(Object key, String propertyName, Serializable propertyValue)
key - chave para a sessão do usuário.propertyName - nome da propriedade.propertyValue - valor da propriedade.public void removeSessionProperty(Object key, String propertyName)
key - chave para a sessão do usuário.propertyName - nome da propriedade.public void setSystemName(Object sessionKey, String systemName)
sessionKey - A chave da sessão.systemName - O nome do sistema.public TimeZone getTimeZone()
TimeZone do cliente pelo qual ele se
logou. Caso não exista TimeZone na sessão do usuário, retornará o
TimeZone default do servidor.TimeZonepublic Map<String,Serializable> getSessionAttributes(Object key)
key - Identificador da sessão do usuáriopublic Map<String,Integer> getLoginStats(boolean succeeded)
succeeded - true para estatísticas dos logins
bem-sucedidos, false para as falhas de autenticaçãoCopyright © 2016. All rights reserved.