pub struct PermissionsAccessControl { /* private fields */ }Expand description
Access-control plugin: allows topics only if they match in the permissions XML for the subject name.
Implementations§
Source§impl PermissionsAccessControl
impl PermissionsAccessControl
Sourcepub fn register(
&mut self,
subject_name: String,
permissions: Permissions,
) -> PermissionsHandle
pub fn register( &mut self, subject_name: String, permissions: Permissions, ) -> PermissionsHandle
Programmatic constructor for a slot — useful for tests without the PropertyList path.
Trait Implementations§
Source§impl AccessControlPlugin for PermissionsAccessControl
impl AccessControlPlugin for PermissionsAccessControl
Source§fn validate_local_permissions(
&mut self,
_local: IdentityHandle,
_participant_guid: [u8; 16],
props: &PropertyList,
) -> SecurityResult<PermissionsHandle>
fn validate_local_permissions( &mut self, _local: IdentityHandle, _participant_guid: [u8; 16], props: &PropertyList, ) -> SecurityResult<PermissionsHandle>
Validates local permissions (Governance.xml + Permissions.xml Read more
Source§fn validate_remote_permissions(
&mut self,
_local: IdentityHandle,
_remote: IdentityHandle,
remote_permissions_token: &[u8],
_remote_credential: &[u8],
) -> SecurityResult<PermissionsHandle>
fn validate_remote_permissions( &mut self, _local: IdentityHandle, _remote: IdentityHandle, remote_permissions_token: &[u8], _remote_credential: &[u8], ) -> SecurityResult<PermissionsHandle>
Validates remote permissions from the SEDP handshake. Read more
Source§fn check_create_datawriter(
&self,
perms: PermissionsHandle,
topic_name: &str,
) -> SecurityResult<AccessDecision>
fn check_create_datawriter( &self, perms: PermissionsHandle, topic_name: &str, ) -> SecurityResult<AccessDecision>
May this participant create a DataWriter on this topic? Read more
Source§fn check_create_datareader(
&self,
perms: PermissionsHandle,
topic_name: &str,
) -> SecurityResult<AccessDecision>
fn check_create_datareader( &self, perms: PermissionsHandle, topic_name: &str, ) -> SecurityResult<AccessDecision>
May this participant create a DataReader on this topic? Read more
Source§fn check_remote_datawriter_match(
&self,
_local: PermissionsHandle,
remote: PermissionsHandle,
topic_name: &str,
) -> SecurityResult<AccessDecision>
fn check_remote_datawriter_match( &self, _local: PermissionsHandle, remote: PermissionsHandle, topic_name: &str, ) -> SecurityResult<AccessDecision>
May the local reader match the remote’s publication? Read more
Source§fn check_remote_datareader_match(
&self,
_local: PermissionsHandle,
remote: PermissionsHandle,
topic_name: &str,
) -> SecurityResult<AccessDecision>
fn check_remote_datareader_match( &self, _local: PermissionsHandle, remote: PermissionsHandle, topic_name: &str, ) -> SecurityResult<AccessDecision>
Mirror image: may a remote reader match our writer?
Source§fn plugin_class_id(&self) -> &str
fn plugin_class_id(&self) -> &str
Plugin class id (e.g. “DDS:Access:Permissions:1.2”) for SPDP
announcing.
Source§fn check_create_participant(
&self,
_local_perms: PermissionsHandle,
_domain_id: u32,
) -> Result<AccessDecision, SecurityError>
fn check_create_participant( &self, _local_perms: PermissionsHandle, _domain_id: u32, ) -> Result<AccessDecision, SecurityError>
Spec §9.4.2.5:
check_create_participant. Default: permit
(no plugin-specific filtering). Read moreSource§fn check_remote_participant(
&self,
_local_perms: PermissionsHandle,
_remote_perms: PermissionsHandle,
_domain_id: u32,
) -> Result<AccessDecision, SecurityError>
fn check_remote_participant( &self, _local_perms: PermissionsHandle, _remote_perms: PermissionsHandle, _domain_id: u32, ) -> Result<AccessDecision, SecurityError>
Spec §9.4.2.6:
check_remote_participant — may the remote
participant join our domain? Default: permit. Read moreSource§fn check_create_topic(
&self,
_local_perms: PermissionsHandle,
_topic_name: &str,
) -> Result<AccessDecision, SecurityError>
fn check_create_topic( &self, _local_perms: PermissionsHandle, _topic_name: &str, ) -> Result<AccessDecision, SecurityError>
Spec §9.4.2.10:
check_create_topic — may the local
subject create a topic with that name? Default: permit. Read moreSource§fn get_permissions_token(
&self,
_local_perms: PermissionsHandle,
) -> Result<Vec<u8>, SecurityError>
fn get_permissions_token( &self, _local_perms: PermissionsHandle, ) -> Result<Vec<u8>, SecurityError>
Spec §9.4.2.13:
get_permissions_token — opaque
permissions token for SPDP announcing
(PID_PERMISSIONS_TOKEN 0x1002). Default: empty. Read moreSource§fn get_permissions_credential_token(
&self,
_local_perms: PermissionsHandle,
) -> Result<Vec<u8>, SecurityError>
fn get_permissions_credential_token( &self, _local_perms: PermissionsHandle, ) -> Result<Vec<u8>, SecurityError>
Spec §9.4.2.14:
get_permissions_credential_token — opaque
credential passed on in the authentication plugin via
set_permissions_credential_and_token.
Default: empty. Read moreAuto Trait Implementations§
impl !Freeze for PermissionsAccessControl
impl RefUnwindSafe for PermissionsAccessControl
impl Send for PermissionsAccessControl
impl Sync for PermissionsAccessControl
impl Unpin for PermissionsAccessControl
impl UnsafeUnpin for PermissionsAccessControl
impl UnwindSafe for PermissionsAccessControl
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more