本文整理汇总了C++中portableinterceptor::ServerRequestInfo_ptr::adapter_id方法的典型用法代码示例。如果您正苦于以下问题:C++ ServerRequestInfo_ptr::adapter_id方法的具体用法?C++ ServerRequestInfo_ptr::adapter_id怎么用?C++ ServerRequestInfo_ptr::adapter_id使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类portableinterceptor::ServerRequestInfo_ptr
的用法示例。
在下文中一共展示了ServerRequestInfo_ptr::adapter_id方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: NO_PERMISSION
void
TAO::SSLIOP::Server_Invocation_Interceptor::receive_request (
PortableInterceptor::ServerRequestInfo_ptr ri )
{
SecurityLevel2::AccessDecision_var ad_tmp =
this->sec2manager_->access_decision ();
TAO::SL2::AccessDecision_var ad =
TAO::SL2::AccessDecision::_narrow (ad_tmp.in ());
CORBA::Boolean const no_ssl =
this->ssliop_current_->no_context ();
if (TAO_debug_level >= 3)
ORBSVCS_DEBUG ((LM_DEBUG, "SSLIOP (%P|%t) Interceptor (context), ssl=%d\n", !(no_ssl)));
// if
// (1) no SSL session state is available (which means that the
// invocation is received across a non-SSL transport)
// AND
// (2) the required Quality of Protection is something other
// than SecQOPNoProtection (set via -SSLNoProtection)
if (no_ssl && this->qop_ != ::Security::SecQOPNoProtection)
{
/*
* Set up all the arguments needed by the call
* to AccessDecision::access_allowed()
*/
/* Get the credentials from SSLIOP */
SecurityLevel2::CredentialsList cred_list; // initial empty?
#if 0
try {
SecurityLevel2::ReceivedCredentials_var rcvd_creds =
this->sec2_current_->received_credentials ();
// this gets the credentials received from the other side. We
// should be able to put this into a CredentialsList with no
// problem.
//
// Do I really need to implement a sec2_current, or can I hack
// the conversion at this level? I probably ought to do it as
// a real sec2_current with the conversion from sec3->sec2
// happening at a lower level.
cred_list.length(1);
cred_list[0] = rcvd_creds.in ();
/*
So, in looking for how we can do this, I find that the
SL3_SecurityCurrent::client_credentials() delegates to SL3_SecurityCurrent_Impl::client_credentials(),
which is pure virtual.
*/
}
catch (...) {
}
#endif
/* Gather the elements that uniquely identify the target object */
CORBA::ORBid_var orb_id = ri->orb_id ();
CORBA::OctetSeq_var adapter_id = ri->adapter_id ();
CORBA::OctetSeq_var object_id = ri->object_id ();
CORBA::String_var operation_name = ri->operation ();
CORBA::Boolean it_should_happen = false;
it_should_happen = ad->access_allowed_ex (orb_id.in (),
adapter_id.in (),
object_id.in (),
cred_list,
operation_name.in());
if (TAO_debug_level >= 3)
{
ORBSVCS_DEBUG ((LM_DEBUG,
"TAO (%P|%t) SL2::access_allowed_ex returned %s\n",
it_should_happen ? "true" : "false"));
}
if (! it_should_happen)
throw CORBA::NO_PERMISSION ();
}
}