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




