v2

package
v0.38.4 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2024 License: GPL-3.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ACLChecker

type ACLChecker interface {
	// CheckBasicACL must return true only if request
	// passes basic ACL validation.
	CheckBasicACL(RequestInfo) bool
	// CheckEACL must return non-nil error if request
	// doesn't pass extended ACL validation.
	CheckEACL(any, RequestInfo) error
	// StickyBitCheck must return true only if sticky bit
	// is disabled or enabled but request contains correct
	// owner field.
	StickyBitCheck(RequestInfo, user.ID) bool
}

ACLChecker is an interface that must provide ACL related checks.

type InnerRingFetcher

type InnerRingFetcher interface {
	// InnerRingKeys must return list of public keys of
	// the actual inner ring.
	InnerRingKeys() ([][]byte, error)
}

InnerRingFetcher is an interface that must provide Inner Ring information.

type MetaWithToken

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

MetaWithToken groups session and bearer tokens, verification header and raw API request.

func (MetaWithToken) RequestOwner

func (r MetaWithToken) RequestOwner() (*user.ID, *keys.PublicKey, error)

RequestOwner returns ownerID and its public key according to internal meta information.

type Option

type Option func(*cfg)

Option represents Service constructor option.

func WithLogger

func WithLogger(v *logger.Logger) Option

WithLogger returns option to set logger.

type RequestInfo

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

RequestInfo groups parsed version-independent (from SDK library) request information and raw API request.

func (RequestInfo) BasicACL

func (r RequestInfo) BasicACL() acl.Basic

BasicACL returns basic ACL of the container.

func (RequestInfo) Bearer

func (r RequestInfo) Bearer() *bearer.Token

Bearer returns bearer token of the request.

func (*RequestInfo) CleanBearer

func (r *RequestInfo) CleanBearer()

CleanBearer forces cleaning bearer token information.

func (RequestInfo) ContainerID

func (r RequestInfo) ContainerID() cid.ID

ContainerID return container ID.

func (RequestInfo) ContainerNamespace added in v0.38.0

func (r RequestInfo) ContainerNamespace() string

func (RequestInfo) ContainerOwner

func (r RequestInfo) ContainerOwner() user.ID

ContainerOwner returns owner if the container.

func (RequestInfo) IsSoftAPECheck added in v0.38.0

func (r RequestInfo) IsSoftAPECheck() bool

IsSoftAPECheck states if APE should perform soft checks. Soft APE check allows a request if CheckAPE returns NoRuleFound for it, otherwise it denies the request.

func (RequestInfo) ObjectID

func (r RequestInfo) ObjectID() *oid.ID

ObjectID return object ID.

func (RequestInfo) Operation

func (r RequestInfo) Operation() acl.Op

Operation returns request's operation.

func (RequestInfo) Request

func (r RequestInfo) Request() any

Request returns raw API request.

func (RequestInfo) RequestRole

func (r RequestInfo) RequestRole() acl.Role

RequestRole returns request sender's role.

func (RequestInfo) SenderKey

func (r RequestInfo) SenderKey() []byte

SenderKey returns public key of the request's sender.

func (*RequestInfo) SetBasicACL

func (r *RequestInfo) SetBasicACL(basicACL acl.Basic)

func (*RequestInfo) SetRequestRole

func (r *RequestInfo) SetRequestRole(requestRole acl.Role)

func (*RequestInfo) SetSenderKey

func (r *RequestInfo) SetSenderKey(senderKey []byte)

type Service

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

Service checks basic ACL rules.

func New

New is a constructor for object ACL checking service.

func (Service) Delete

func (b Service) Delete(
	ctx context.Context,
	request *objectV2.DeleteRequest,
) (*objectV2.DeleteResponse, error)

func (Service) Get

func (b Service) Get(request *objectV2.GetRequest, stream object.GetObjectStream) error

Get implements ServiceServer interface, makes ACL checks and calls next Get method in the ServiceServer pipeline.

func (Service) GetRange

func (b Service) GetRange(request *objectV2.GetRangeRequest, stream object.GetObjectRangeStream) error

func (Service) GetRangeHash

func (Service) Head

func (b Service) Head(
	ctx context.Context,
	request *objectV2.HeadRequest,
) (*objectV2.HeadResponse, error)

func (Service) Put

func (b Service) Put() (object.PutObjectStream, error)

func (Service) PutSingle added in v0.37.0

func (Service) Search

func (b Service) Search(request *objectV2.SearchRequest, stream object.SearchStream) error

Jump to

Keyboard shortcuts

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