Skip to main content

Problem

  • Product Name: VisiBroker
  • Product Version: 7.0
  • Platform/OS version: ALL
  • JDK: ALL

The method getPeerCertificateChain() has been changed in VisiBroker 7.0 onwards. The following code will work on VisiBroker 6.5 but not on VisiBroker 7.0 onwards.

CORBA::Object_var obj = orb->resolve_initial_references("SSLCurrent");
ssl::Current_var current = ssl::Current::_narrow(obj);
::CORBAsec::X509CertList_var certList = current->getPeerCertificateChain(current);

The function ssl::Current::getPeerCertificateChain(CORBA::Object_ptr peer) is used to get "peer" object's CertificateChain. In VisiBroker 7.0, this call will throw CORBA::MARSHAL exception with minor code 4f4d0000. 

Resolution

From VisiBroker 7.0 onwards, if you want to get peer info(getPeerCertificates) of the client/server side from the server/client, you need to use vbsec::SSLSession::getPeerCertificates() to get this information.

Example:

const vbsec::SSLSession* ses = _seccur->getPeerSession( NULL); ....
const CORBAsec::X509CertList& liz = ses->getPeerCertificates();

Please refer the file "BankImplSec.h" in the /examples/vbroker/security/bank_ssl example.


#Security
#getPeerCertificates
#getPeerCertificateChain
#VisiBroker