MCPcopy Create free account
hub / github.com/astercloud/aster / AddPolicy

Method AddPolicy

pkg/security/policy.go:441–486  ·  view source on GitHub ↗

AddPolicy 添加策略

(policy *SecurityPolicy)

Source from the content-addressed store, hash-verified

439
440// AddPolicy 添加策略
441func (bpe *BasicPolicyEngine) AddPolicy(policy *SecurityPolicy) error {
442 bpe.mu.Lock()
443 defer bpe.mu.Unlock()
444
445 if policy.ID == "" {
446 return errors.New("policy ID is required")
447 }
448
449 if _, exists := bpe.policies[policy.ID]; exists {
450 return fmt.Errorf("policy %s already exists", policy.ID)
451 }
452
453 // 设置默认值
454 if policy.Version == "" {
455 policy.Version = "1.0.0"
456 }
457 if policy.Priority == 0 {
458 policy.Priority = 100
459 }
460 if policy.CreatedAt.IsZero() {
461 policy.CreatedAt = time.Now()
462 }
463 if policy.UpdatedAt.IsZero() {
464 policy.UpdatedAt = time.Now()
465 }
466
467 bpe.policies[policy.ID] = policy
468
469 // 记录审计日志
470 if bpe.config.EnableAudit && bpe.auditLog != nil {
471 _ = bpe.auditLog.LogEvent(AuditEvent{
472 Type: AuditTypePolicyCreated,
473 UserID: policy.CreatedBy,
474 Timestamp: time.Now(),
475 Message: fmt.Sprintf("Policy %s (%s) created", policy.ID, policy.Name),
476 Metadata: map[string]any{
477 "policy_id": policy.ID,
478 "policy_name": policy.Name,
479 "policy_scope": policy.Scope,
480 "policy_target": policy.Target,
481 },
482 })
483 }
484
485 return nil
486}
487
488// UpdatePolicy 更新策略
489func (bpe *BasicPolicyEngine) UpdatePolicy(policy *SecurityPolicy) error {

Calls 1

LogEventMethod · 0.65