load

package
v0.0.0-...-455e706 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Load

type Load struct {
	// contains filtered or unexported fields
}

外部实现 Loader 接口 即 cache

func NewLoad

func NewLoad(ctx context.Context, loader Loader) *Load

同步相关

func (*Load) DoReload

func (l *Load) DoReload()

根据传来的接口重新加载 密钥和策略

func (*Load) Start

func (l *Load) Start()

启动 load服务 后台运行

type Loader

type Loader interface {
	Reload() error //  Reload 会从 iam-apiserver 中同步密钥和策略信息到 iam-authz-server 缓存中。
}

同步接口

type Notification

type Notification struct {
	Command       NotificationCommand `json:"command"`   // 说明是 policy 还是 secret 更改
	Payload       string              `json:"payload"`   // 有效载荷
	Signature     string              `json:"signature"` // 签名 保存  Sha256 加密 (Command + Payload)
	SignatureAlgo crypto.Hash         `json:"algorithm"` // command+payload 通过签名加密后的内容
}

Notification是一种对发布到发布子频道(在实现之间共享)的消息进行编码的类型。 即发送者发送的消息为 下面的内容 然后进行解码

func (*Notification) Sign

func (n *Notification) Sign()

使用SHA256算法进行签名通知

type NotificationCommand

type NotificationCommand string // 通知命令

密钥和策略的同步 的 有关 redis 函数

const (
	// redis channel name
	RedisPubSubChannel = "iam.cluster.notifications" // channel name
	// 那种类型通知命令
	NoticePolicyChanged NotificationCommand = "PolicyChanged" // 政策改变 (权限改变)
	NoticeSecretChanged NotificationCommand = "SecretChanged" // 密钥改变 (密钥改变)
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL