tecgraf.openbus
Interface Connection


public interface Connection

Objeto que representa uma forma de acesso a um barramento.

Uma conexão representa uma forma de acesso a um barramento. Basicamente, uma conexão é usada para representar uma identidade de acesso a um barramento. É possível uma aplicação assumir múltiplas identidades ao acessar um ou mais barramentos criando múltiplas conexões para esses barramentos.

Para que as conexões possam ser efetivamente utilizadas elas precisam estar autenticadas no barramento, que pode ser visto como um identificador de acesso. Cada login possui um identificador único e é autenticado em nome de uma entidade, que pode representar um sistema computacional ou mesmo uma pessoa. A função da entidade é atribuir a responsabilidade às chamadas feitas com aquele login.

É importante notar que a conexão só define uma forma de acesso, mas não é usada diretamente pela aplicação ao realizar ou receber chamadas, pois as chamadas ocorrem usando proxies e servants de um ORB. As conexões que são efetivamente usadas nas chamadas do ORB são definidas através do OpenBusContext associado ao ORB.

Author:
Tecgraf

Method Summary
 String busid()
          Recupera o identificador do barramento ao qual essa conexão se refere.
 LoginInfo login()
          Recupera as Informações do login dessa conexão ou null se a conexão não está autenticada, ou seja, não tem um login válido no barramento.
 void loginByCertificate(String entity, PrivateKey privateKey)
          Efetua login de uma entidade usando autenticação por certificado.
 void loginByPassword(String entity, byte[] password)
          Efetua login de uma entidade usando autenticação por senha.
 void loginBySharedAuth(LoginProcess process, byte[] secret)
          Efetua login de uma entidade usando autenticação compartilhada.
 boolean logout()
          Efetua logout da conexão, tornando o login atual inválido.
 InvalidLoginCallback onInvalidLoginCallback()
          Recupera a callback a ser chamada sempre que o login se torna inválido.
 void onInvalidLoginCallback(InvalidLoginCallback callback)
          Callback a ser chamada quando o login atual se tornar inválido.
 ORB orb()
          Recupera o ORB correspondente ao OpenBusContext a partir do qual essa conexão foi criada.
 LoginProcess startSharedAuth(OctetSeqHolder secret)
          Inicia o processo de login por autenticação compartilhada.
 

Method Detail

orb

ORB orb()
Recupera o ORB correspondente ao OpenBusContext a partir do qual essa conexão foi criada.

Returns:
o ORB

busid

String busid()
Recupera o identificador do barramento ao qual essa conexão se refere.

Returns:
o identificador do barramento.

login

LoginInfo login()
Recupera as Informações do login dessa conexão ou null se a conexão não está autenticada, ou seja, não tem um login válido no barramento.

Returns:
as informações do login.

loginByPassword

void loginByPassword(String entity,
                     byte[] password)
                     throws AccessDenied,
                            AlreadyLoggedIn,
                            ServiceFailure
Efetua login de uma entidade usando autenticação por senha.

A autenticação por senha é validada usando um dos validadores de senha definidos pelo adminsitrador do barramento.

Parameters:
entity - Identificador da entidade a ser autenticada.
password - Senha de autenticação no barramento da entidade.
Throws:
AlreadyLoggedIn - A conexão já está autenticada.
AccessDenied - Senha fornecida para autenticação da entidade não foi validada pelo barramento.
ServiceFailure - Ocorreu uma falha interna nos serviços do barramento que impediu a autenticação da conexão.

loginByCertificate

void loginByCertificate(String entity,
                        PrivateKey privateKey)
                        throws AlreadyLoggedIn,
                               AccessDenied,
                               MissingCertificate,
                               ServiceFailure
Efetua login de uma entidade usando autenticação por certificado.

A autenticação por certificado é validada usando um certificado de login registrado pelo adminsitrador do barramento.

Parameters:
entity - Identificador da entidade a ser autenticada.
privateKey - Chave privada correspondente ao certificado registrado a ser utilizada na autenticação.
Throws:
AlreadyLoggedIn - A conexão já está autenticada.
AccessDenied - A chave privada fornecida não corresponde ao certificado da entidade registrado no barramento indicado.
MissingCertificate - Não há certificado para essa entidade registrado no barramento indicado.
ServiceFailure - Ocorreu uma falha interna nos serviços do barramento que impediu a autenticação da conexão.

startSharedAuth

LoginProcess startSharedAuth(OctetSeqHolder secret)
                             throws ServiceFailure
Inicia o processo de login por autenticação compartilhada.

A autenticação compartilhada permite criar um novo login compartilhando a mesma autenticação do login atual da conexão. Portanto essa operação só pode ser chamada enquanto a conexão estiver autenticada, caso contrário a exceção de sistema NO_PERMISSION[NoLoginCode] é lançada. As informações fornecidas por essa operação devem ser passadas para a operação loginBySharedAuth para conclusão do processo de login por autenticação compartilhada. Isso deve ser feito dentro do tempo de lease definido pelo administrador do barramento. Caso contrário essas informações se tornam inválidas e não podem mais ser utilizadas para criar um login.

Parameters:
secret - Segredo a ser fornecido na conclusão do processo de login.
Returns:
Objeto que represeta o processo de login iniciado.
Throws:
ServiceFailure - Ocorreu uma falha interna nos serviços do barramento que impediu a obtenção do objeto de login e segredo.

loginBySharedAuth

void loginBySharedAuth(LoginProcess process,
                       byte[] secret)
                       throws AlreadyLoggedIn,
                              InvalidLoginProcess,
                              AccessDenied,
                              ServiceFailure
Efetua login de uma entidade usando autenticação compartilhada.

A autenticação compartilhada é feita a partir de informações obtidas a através da operação startSharedAuth de uma conexão autenticada.

Parameters:
process - Objeto que represeta o processo de login iniciado.
secret - Segredo a ser fornecido na conclusão do processo de login.
Throws:
InvalidLoginProcess - O LoginProcess informado é inválido, por exemplo depois de ser cancelado ou ter expirado.
AlreadyLoggedIn - A conexão já está autenticada.
AccessDenied - O segredo fornecido não corresponde ao esperado pelo barramento.
ServiceFailure - Ocorreu uma falha interna nos serviços do barramento que impediu a autenticação da conexão.

logout

boolean logout()
               throws ServiceFailure
Efetua logout da conexão, tornando o login atual inválido.

Após a chamada a essa operação a conexão fica desautenticada, implicando que qualquer chamada realizada pelo ORB usando essa conexão resultará numa exceção de sistema NO_PERMISSION[NoLoginCode] e chamadas recebidas por esse ORB serão respondidas com a exceção NO_PERMISSION[UnknownBusCode] indicando que não foi possível validar a chamada pois a conexão está temporariamente desautenticada.

Returns:
true se o processo de logout for concluído com êxito e false se a conexão já estiver desautenticada (login inválido) ou se houver uma falha durante o processo remoto do logout.
Throws:
ServiceFailure - Ocorreu uma falha interna nos serviços do barramento durante chamada ao remota.

onInvalidLoginCallback

void onInvalidLoginCallback(InvalidLoginCallback callback)
Callback a ser chamada quando o login atual se tornar inválido.

Esse atributo é utilizado para definir um objeto que implementa uma interface de callback a ser chamada sempre que a conexão receber uma notificação de que o seu login está inválido. Essas notificações ocorrem durante chamadas realizadas ou recebidas pelo barramento usando essa conexão. Um login pode se tornar inválido caso o administrador explicitamente o torne inválido ou caso a thread interna de renovação de login não seja capaz de renovar o lease do login a tempo. Caso esse atributo seja null, nenhum objeto de callback é chamado na ocorrência desse evento.

Durante a execução dessa callback um novo login pode ser restabelecido. Neste caso, a chamada do barramento que recebeu a notificação de login inválido é refeita usando o novo login, caso contrário, a chamada original lança a exceção de de sistema NO_PERMISSION[NoLoginCode].

Parameters:
callback - Objeto que implementa a interface de callback a ser chamada ou null caso nenhum objeto deva ser chamado na ocorrência desse evento.

onInvalidLoginCallback

InvalidLoginCallback onInvalidLoginCallback()
Recupera a callback a ser chamada sempre que o login se torna inválido.

Returns:
a callback ou null caso ela não exista.


Copyright © 2014. All Rights Reserved.