pub struct NetworkAttackResponsePlugin { /* private fields */ }Expand description
Plugin for handling network attack events
Workflow:
- Block the attacking IP address
- Analyze the attack pattern
- Notify the security team
Implementations§
Source§impl NetworkAttackResponsePlugin
impl NetworkAttackResponsePlugin
Sourcepub fn new() -> NetworkAttackResponsePlugin
pub fn new() -> NetworkAttackResponsePlugin
Create a new network attack response plugin
Trait Implementations§
Source§impl AgentPlugin for NetworkAttackResponsePlugin
impl AgentPlugin for NetworkAttackResponsePlugin
Source§fn metadata(&self) -> &PluginMetadata
fn metadata(&self) -> &PluginMetadata
获取插件元数据
Source§fn state(&self) -> PluginState
fn state(&self) -> PluginState
获取插件状态
Source§fn load<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ctx: &'life1 PluginContext,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ctx: &'life1 PluginContext,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
插件加载(分配资源)
Source§fn init_plugin<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
fn init_plugin<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
插件初始化(配置初始化)
Source§fn start<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
fn start<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
插件启动
Source§fn stop<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
fn stop<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
插件停止
Source§fn unload<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
fn unload<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
插件卸载(释放资源)
Source§fn execute<'life0, 'async_trait>(
&'life0 mut self,
input: String,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 mut self,
input: String,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
执行插件功能
Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
转换为可变 Any
Source§fn plugin_type(&self) -> PluginType
fn plugin_type(&self) -> PluginType
获取插件类型
Source§fn pause<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn pause<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
插件暂停
Source§fn resume<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn resume<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
插件恢复
Source§impl EventResponsePlugin for NetworkAttackResponsePlugin
impl EventResponsePlugin for NetworkAttackResponsePlugin
Source§fn config(&self) -> &EventResponseConfig
fn config(&self) -> &EventResponseConfig
Get the plugin configuration
Source§fn update_config<'life0, 'async_trait>(
&'life0 mut self,
config: EventResponseConfig,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
fn update_config<'life0, 'async_trait>(
&'life0 mut self,
config: EventResponseConfig,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
Update the plugin configuration at runtime
Source§fn can_handle(&self, event: &Event) -> bool
fn can_handle(&self, event: &Event) -> bool
Check if this plugin can handle the given event
Source§fn handle_event<'life0, 'async_trait>(
&'life0 mut self,
event: Event,
) -> Pin<Box<dyn Future<Output = Result<Event, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
fn handle_event<'life0, 'async_trait>(
&'life0 mut self,
event: Event,
) -> Pin<Box<dyn Future<Output = Result<Event, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
Handle the event
Source§fn execute_workflow<'life0, 'life1, 'async_trait>(
&'life0 self,
event: &'life1 Event,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
fn execute_workflow<'life0, 'life1, 'async_trait>(
&'life0 self,
event: &'life1 Event,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
NetworkAttackResponsePlugin: 'async_trait,
Execute the response workflow for the event
Source§impl From<NetworkAttackResponsePlugin> for Box<dyn AgentPlugin>
impl From<NetworkAttackResponsePlugin> for Box<dyn AgentPlugin>
Source§fn from(plugin: NetworkAttackResponsePlugin) -> Box<dyn AgentPlugin>
fn from(plugin: NetworkAttackResponsePlugin) -> Box<dyn AgentPlugin>
Converts to this type from the input type.
Source§impl From<NetworkAttackResponsePlugin> for Box<dyn EventResponsePlugin>
impl From<NetworkAttackResponsePlugin> for Box<dyn EventResponsePlugin>
Source§fn from(plugin: NetworkAttackResponsePlugin) -> Box<dyn EventResponsePlugin>
fn from(plugin: NetworkAttackResponsePlugin) -> Box<dyn EventResponsePlugin>
Converts to this type from the input type.
Auto Trait Implementations§
impl !Freeze for NetworkAttackResponsePlugin
impl !RefUnwindSafe for NetworkAttackResponsePlugin
impl Send for NetworkAttackResponsePlugin
impl Sync for NetworkAttackResponsePlugin
impl Unpin for NetworkAttackResponsePlugin
impl UnsafeUnpin for NetworkAttackResponsePlugin
impl !UnwindSafe for NetworkAttackResponsePlugin
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Message for T
impl<T> Message for T
Source§fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
Convert a BoxedMessage to this concrete type
Source§fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
Convert this message to a BoxedMessage