OpenBus SDK C++ TAO  2.0.2.0
 Tudo Classes Namespaces Ficheiros Funções Definições de tipos Páginas
Tipos Públicos | Membros públicos | Amigos | Mostrar lista completa dos membros
Referência à classe openbus::Connection

Conexão para acesso identificado a um barramento. Mais...

#include <Connection.hpp>

Tipos Públicos

typedef std::vector< std::pair
< std::string, std::string > > 
ConnectionProperties
 
typedef boost::function< void(Connection
&conn, idl_ac::LoginInfo login)> 
InvalidLoginCallback_t
 Callback de login inválido. Mais...
 

Membros públicos

void loginByPassword (const std::string &entity, const std::string &password)
 
void loginByCertificate (const std::string &entity, const PrivateKey &privKey)
 Efetua login de uma entidade usando autenticação por certificado. Mais...
 
SharedAuthSecret startSharedAuth ()
 Inicia o processo de login por autenticação compartilhada. Mais...
 
void loginBySharedAuth (const SharedAuthSecret &secret)
 Efetua login de uma entidade usando autenticação compartilhada. Mais...
 
bool logout ()
 Efetua logout da conexão, tornando o login atual inválido. Mais...
 
void onInvalidLogin (InvalidLoginCallback_t p)
 Callback a ser chamada quando o login atual se tornar inválido. Mais...
 
InvalidLoginCallback_t onInvalidLogin () const
 Retorna a callback configurada para ser chamada quando o login atual se torna inválido.
 
const idl_ac::LoginInfo * login () const
 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.
 
const std::string busid () const
 

Amigos

struct openbus::interceptors::ServerInterceptor
 
struct openbus::interceptors::ClientInterceptor
 
class openbus::OpenBusContext
 
bool operator== (const SecretSession &lhs, const SecretSession &rhs)
 
bool operator!= (const SecretSession &lhs, const SecretSession &rhs)
 

Descrição detalhada

Conexão para acesso identificado a um barramento.

Uma conexão é usada para realizar acessos identificados a um barramento. Denominamos esses acessos identificados ao barramento de login. Cada login possui um identificador único e está sempre associado ao nome de uma entidade que é autenticada no momento do estabelecimento do login. Há basicamente três formas de autenticação de entidade disponíveis:

A entidade associada ao login é responsável por todas as chamadas feitas através daquela conexão e essa entidade deve ser levada em consideração pelos serviços ofertados no barramento para decidir aceitar ou recusar chamadas.

É possível uma aplicação assumir múltiplas identidades ao acessar um ou mais barramentos criando múltiplas conexões para esses barramentos.

É importante notar que a conexão 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.

Documentação das definições de tipo

typedef boost::function<void (Connection & conn, idl_ac::LoginInfo login)> openbus::Connection::InvalidLoginCallback_t

Callback de login inválido.

Tipo que representa um objeto função ('function object') a ser chamado quando uma notificação de login inválido é recebida. Caso alguma exceção ocorra durante a execução do método e não seja tratada, o erro será capturado pelo interceptador e registrado no log.

O tipo InvalidLoginCallback_t é um typedef de boost::function. Para documentação dessa biblioteca acesse http://www.boost.org/doc/libs/1_47_0/doc/html/function.html

Parâmetros
connConexão que recebeu a notificação de login inválido.
loginInformações do login que se tornou inválido.

Documentação dos métodos

const std::string openbus::Connection::busid ( ) const

Identificador do barramento ao qual essa conexão se refere.

void openbus::Connection::loginByCertificate ( const std::string &  entity,
const PrivateKey &  privKey 
)

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.

Parâmetros
entityIdentificador da entidade a ser conectada.
privKeyChave privada da entidade utilizada na autenticação.
Excepções
AlreadyLoggedInA conexão já está autenticada.
idl_ac::AccessDeniedA chave privada fornecida não corresponde ao certificado da entidade registrado no barramento indicado.
idl_ac::MissingCertificateNão há certificado para essa entidade registrado no barramento indicado.
idl::ServiceFailureOcorreu uma falha interna nos serviços do barramento que impediu a autenticação da conexão.
CORBA::Exception
void openbus::Connection::loginByPassword ( const std::string &  entity,
const std::string &  password 
)

Efetua login no barramento como uma entidade usando autenticação por senha.

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

Parâmetros
entityIdentificador da entidade a ser autenticada.
passwordSenha de autenticação no barramento da entidade.
Excepções
AlreadyLoggedInA conexão já está logada.
idl_ac::AccessDeniedSenha fornecida para autenticação da entidade não foi validada pelo barramento.
idl::ServiceFailureOcorreu uma falha interna nos serviços do barramento que impediu a autenticação da conexão.
CORBA::Exception
void openbus::Connection::loginBySharedAuth ( const SharedAuthSecret secret)

Efetua login de uma entidade usando autenticação compartilhada.

A autenticação compartilhada é feita a partir de um segredo obtido através da operação 'startSharedAuth' de uma conexão autenticada.

Parâmetros
secretSegredo a ser fornecido na conclusão do processo de login.
Excepções
InvalidLoginProcessA tentativa de login associada ao segredo informado é inválido, por exemplo depois do segredo ser cancelado, ter expirado, ou já ter sido utilizado.
AlreadyLoggedInA conexão já está autenticada.
AccessDeniedO segredo fornecido não corresponde ao esperado pelo barramento.
ServiceFailureOcorreu uma falha interna nos serviços do barramento que impediu a autenticação da conexão.
CORBA::Exception
bool openbus::Connection::logout ( )

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 'CORBA::NO_PERMISSION{NoLogin}' e chamadas recebidas por esse ORB serão respondidas com a exceção 'CORBA::NO_PERMISSION{UnknownBus}' indicando que não foi possível validar a chamada pois a conexão está temporariamente desautenticada.

Retorna
Verdadeiro se o processo de logout for concluído com êxito e falso se não for possível invalidar o login atual.
void openbus::Connection::onInvalidLogin ( InvalidLoginCallback_t  p)

Callback a ser chamada quando o login atual se tornar inválido.

Esse atributo é utilizado para definir um objeto função (function object) 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 um InvalidLoginCallback_t 'default-constructed', 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 'CORBA::NO_PERMISSION{NoLogin}'.

O tipo InvalidLoginCallback_t é um typedef de boost::function. Para documentação dessa biblioteca acesse http://www.boost.org/doc/libs/1_47_0/doc/html/function.html

SharedAuthSecret openbus::Connection::startSharedAuth ( )

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 CORBA::NO_PERMISSION{NoLogin} é 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.

Retorna
Segredo a ser fornecido na conclusão do processo de login.
Excepções
idl::ServiceFailureOcorreu uma falha interna nos serviços do barramento que impediu o estabelecimento da conexão.
CORBA::Exception

A documentação para esta classe foi gerada a partir do seguinte ficheiro: