Firewall-Config-Element

 view release on metacpan or  search on metacpan

lib/Firewall/Config/Element/Interface/Role.pm  view on Meta::CPAN

has ipAddress => ( is => 'ro', isa => 'Str', required => 0, );

has mask => ( is => 'ro', isa => 'Int', required => 0, );

# 接口类型是二层还是三层
has interfaceType => ( is => 'ro', isa => 'Str', default => 'layer2', );

has range => ( is => 'ro', isa => 'Firewall::Utils::Set', default => sub { Firewall::Utils::Set->new() } );

# 接口路由
has routes => ( is => 'ro', isa => 'HashRef', lazy => 1, default => sub { {} }, );

# 接口安全区
has zoneName => ( is => 'ro', isa => 'Str', required => 0, );

#------------------------------------------------------------------------------
# Moose BUILD 用于对象创建后,进行属性检查逻辑
# https://metacpan.org/pod/Moose::Manual::Construction
#------------------------------------------------------------------------------
sub BUILD {
  my $self = shift;

lib/Firewall/Config/Element/NatPool/H3c.pm  view on Meta::CPAN

use Firewall::Utils::Ip;

#------------------------------------------------------------------------------
# 引用 Firewall::Config::Element::NatPool::Role 角色
#------------------------------------------------------------------------------
with 'Firewall::Config::Element::NatPool::Role';

#------------------------------------------------------------------------------
# Firewall::Config::Element::NatPool::H3c 通用属性
#------------------------------------------------------------------------------
has '+poolIp' => ( is => 'ro', isa => 'ArrayRef', required => 1, );

has name => ( is => 'ro', isa => 'Str', required => 0, );

#------------------------------------------------------------------------------
# 重写 Firewall::Config::Element::Role => _buildSign 方法,
#------------------------------------------------------------------------------
sub _buildSign {
  my $self = shift;
  return $self->createSign( $self->poolName );
}

lib/Firewall/Config/Element/NatPool/Huawei.pm  view on Meta::CPAN


#------------------------------------------------------------------------------
# 引用 Firewall::Config::Element::NatPool::Role 角色
#------------------------------------------------------------------------------
with 'Firewall::Config::Element::NatPool::Role';

#------------------------------------------------------------------------------
# Firewall::Config::Element::NatPool::Huawei 通用属性
#------------------------------------------------------------------------------

has '+poolIp' => ( is => 'ro', isa => 'ArrayRef', required => 0, );

has mode => ( is => 'ro', isa => 'Str', required => 0, );

#source destination bidirect
has natDirection => ( is => 'ro', isa => 'Str', required => 0, );

has id => ( is => 'ro', isa => 'Int', required => 0, );

#------------------------------------------------------------------------------
# 重写 Firewall::Config::Element::Role => _buildSign 方法,

lib/Firewall/Config/Element/ProtocolGroup/Role.pm  view on Meta::CPAN

#------------------------------------------------------------------------------
has proGroupName => ( is => 'ro', isa => 'Str', required => 1, );

has proGroupMembers => (
  is   => 'ro',
  does =>
    'HashRef[ Firewall::Config::Element::Protocol::Role | Firewall::Config::Element::ProtocolGroup::Role | Undef ]',
  default => sub { {} },
);

has protocols => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::Protocol::Role]', default => sub { {} }, );

#------------------------------------------------------------------------------
# 新增协议对象成员方法
#------------------------------------------------------------------------------
sub addProGroupMember {
  my ( $self, $proGroupMemberName, $obj ) = @_;
  confess "ERROR: proGroupMemberName must defined" if not defined $proGroupMemberName;
  unless ( not defined $obj
    or $obj->does('Firewall::Config::Element::Protocol::Role')
    or $obj->does('Firewall::Config::Element::ProtocolGroup::Role') )

lib/Firewall/Config/Element/Rule/Topsec.pm  view on Meta::CPAN

#------------------------------------------------------------------------------
# 加载 Firewall::Config::Element::Rule::Role 角色
#------------------------------------------------------------------------------
with 'Firewall::Config::Element::Rule::Role';

#------------------------------------------------------------------------------
# Firewall::Config::Element::Rule::Netscreen 通用属性
#------------------------------------------------------------------------------
has policyId => ( is => 'ro', isa => 'Str', required => 1, );

has fromZone => ( is => 'ro', isa => 'HashRef[Undef]|Undef', );

has toZone => ( is => 'ro', isa => 'HashRef[Undef]|Undef', );

has fromVlan => ( is => 'ro', isa => 'HashRef[Str|Undef]Undef', );

has toVlan => ( is => 'ro', isa => 'HashRef[Str|Undef]|Undef', );

has fromInterface => ( is => 'ro', isa => 'Str', required => 0, );

has toInterface => ( is => 'ro', isa => 'Str', required => 0, );

has '+action' => ( is => 'ro', isa => 'Str', default => 'permit', );

#------------------------------------------------------------------------------
# 重写 Firewall::Config::Element::Role => _buildRange 方法
#------------------------------------------------------------------------------

lib/Firewall/Config/Element/Service/Role.pm  view on Meta::CPAN

#------------------------------------------------------------------------------
# 引入 Firewall::Config::Element::Role 角色
#------------------------------------------------------------------------------
with 'Firewall::Config::Element::Role';

#------------------------------------------------------------------------------
# Firewall::Config::Element::Service::Role 通用属性
#------------------------------------------------------------------------------
has srvName => ( is => 'ro', isa => 'Str', required => 1, );

has metas => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::ServiceMeta::Role]', default => sub { {} }, );

has dstPortRangeMap => ( is => 'ro', isa => 'HashRef[Firewall::Utils::Set]', default => sub { {} }, );

has refnum => ( is => 'ro', isa => 'Int', default => 0 );

has range => ( is => 'ro', isa => 'Firewall::Utils::Set', lazy => 1, builder => '_buildRange', );

#------------------------------------------------------------------------------
# getServiceClassName 获取服务端口名
#------------------------------------------------------------------------------
sub getServiceClassName {
  my $self = shift;

lib/Firewall/Config/Element/ServiceGroup/Role.pm  view on Meta::CPAN

# Firewall::Config::Element::ServiceGroup::Role 通用属性
#------------------------------------------------------------------------------
has srvGroupName => ( is => 'ro', isa => 'Str', required => 1, );

has srvGroupMembers => (
  is   => 'ro',
  does => 'HashRef[ Firewall::Config::Element::Service::Role | Firewall::Config::Element::ServiceGroup::Role | Undef ]',
  default => sub { {} },
);

has dstPortRangeMap => ( is => 'ro', isa => 'HashRef[Firewall::Utils::Set]', default => sub { {} }, );

has refnum => ( is => 'ro', isa => 'Int', default => 0 );

has range => ( is => 'ro', isa => 'Firewall::Utils::Set', lazy => 1, builder => '_buildRange', );

#------------------------------------------------------------------------------
# addSrvGroupMember 添加服务端口组成员
#------------------------------------------------------------------------------
sub addSrvGroupMember {
  my ( $self, $srvGroupMemberName, $obj ) = @_;

lib/Firewall/Config/Element/Zone/Role.pm  view on Meta::CPAN

#------------------------------------------------------------------------------
# 引用 Firewall::Config::Element::Role 角色
#------------------------------------------------------------------------------
with 'Firewall::Config::Element::Role';

#------------------------------------------------------------------------------
# Firewall::Config::Element::Zone::Role 通用属性
#------------------------------------------------------------------------------
has name => ( is => 'ro', isa => 'Str', required => 1, );

has interfaces => ( is => 'ro', does => 'HashRef[Firewall::Config::Element::Interface::Role]', default => sub { {} }, );

has range => ( is => 'ro', isa => 'Firewall::Utils::Set', lazy => 1, default => sub { Firewall::Utils::Set->new() } );

#------------------------------------------------------------------------------
# 安全区添加接口
#------------------------------------------------------------------------------
sub addInterface {
  my ( $self, $interface ) = @_;
  $self->interfaces->{$interface->sign} = $interface;
  $self->range->mergeToSet( $interface->range );



( run in 0.738 second using v1.01-cache-2.11-cpan-5f2e87ce722 )