httpsession

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2015 License: MIT Imports: 15 Imported by: 0

README

Httpsession is an implementation of HTTP session for Go.

Documentation

Overview

Package httpsession is a http server session implement for Go.

Installation

Make sure you have installed Go 1.1+ and then:

go get github.com/coscms/webx/lib/httpsession

More usage, please visit https://github.com/coscms/webx/lib/httpsession/

Index

Constants

View Source
const (
	DefaultMaxAge = 30 * time.Minute
)

Variables

View Source
var RegNodeToGob bool

Functions

func GenRandKey

func GenRandKey(strength int) []byte

Types

type AfterCreatedListener

type AfterCreatedListener interface {
	OnAfterCreated(*Session)
}

type BeforeReleaseListener

type BeforeReleaseListener interface {
	OnBeforeRelease(*Session)
}

type CookieTransfer

type CookieTransfer struct {
	Name     string
	MaxAge   time.Duration
	Lock     sync.Mutex
	Secure   bool
	RootPath string
	Domain   string
}

CookieRetriever provide sessionid from cookie

func NewCookieTransfer

func NewCookieTransfer(name string, maxAge time.Duration, secure bool, rootPath string) *CookieTransfer

func (*CookieTransfer) Clear

func (transfer *CookieTransfer) Clear(rw http.ResponseWriter)

func (*CookieTransfer) Get

func (transfer *CookieTransfer) Get(req *http.Request) (Id, error)

func (*CookieTransfer) Set

func (transfer *CookieTransfer) Set(req *http.Request, rw http.ResponseWriter, id Id)

func (*CookieTransfer) SetMaxAge

func (transfer *CookieTransfer) SetMaxAge(maxAge time.Duration)

type CookieUrlTransfer

type CookieUrlTransfer struct {
	CookieTransfer
}

func NewCookieUrlTransfer

func NewCookieUrlTransfer(name string, maxAge time.Duration, secure bool, rootPath string) *CookieUrlTransfer

for SWFUpload ...

func (*CookieUrlTransfer) Get

func (transfer *CookieUrlTransfer) Get(req *http.Request) (Id, error)

type Id

type Id string

type IdGenerator

type IdGenerator interface {
	Gen(req *http.Request) Id
	IsValid(id Id) bool
}

type Manager

type Manager struct {
	Path string
	// contains filtered or unexported fields
}

func Default

func Default() *Manager

func NewManager

func NewManager(store Store, gen IdGenerator, transfer Transfer) *Manager

func (*Manager) AddListener

func (manager *Manager) AddListener(listener interface{}) error

func (*Manager) Invalidate

func (manager *Manager) Invalidate(rw http.ResponseWriter, session *Session)

func (*Manager) RemoveListener

func (manager *Manager) RemoveListener(listener interface{}) error

func (*Manager) Run

func (manager *Manager) Run() error

func (*Manager) Session

func (manager *Manager) Session(req *http.Request, rw http.ResponseWriter) *Session

func (*Manager) SetMaxAge

func (manager *Manager) SetMaxAge(maxAge time.Duration)

type MemcacheStore

type MemcacheStore struct {
	Debug bool
	// contains filtered or unexported fields
}

func NewMemcacheStore

func NewMemcacheStore(maxAge time.Duration, conn []string) *MemcacheStore

func (*MemcacheStore) Add

func (store *MemcacheStore) Add(id Id)

func (*MemcacheStore) Clear

func (store *MemcacheStore) Clear(id Id) bool

func (*MemcacheStore) Del

func (store *MemcacheStore) Del(id Id, key string) bool

func (*MemcacheStore) Exist

func (store *MemcacheStore) Exist(id Id) bool

func (*MemcacheStore) Get

func (store *MemcacheStore) Get(id Id, key string) interface{}

func (*MemcacheStore) Run

func (store *MemcacheStore) Run() error

func (*MemcacheStore) Set

func (store *MemcacheStore) Set(id Id, key string, value interface{})

func (*MemcacheStore) SetMaxAge

func (store *MemcacheStore) SetMaxAge(maxAge time.Duration)

type MemoryStore

type MemoryStore struct {
	GcInterval time.Duration
	// contains filtered or unexported fields
}

func NewMemoryStore

func NewMemoryStore(maxAge time.Duration) *MemoryStore

func (*MemoryStore) Add

func (store *MemoryStore) Add(id Id)

func (*MemoryStore) Clear

func (store *MemoryStore) Clear(id Id) bool

func (*MemoryStore) Del

func (store *MemoryStore) Del(id Id, key string) bool

func (*MemoryStore) Exist

func (store *MemoryStore) Exist(id Id) bool

func (*MemoryStore) GC

func (store *MemoryStore) GC()

随机检查过期时间

func (*MemoryStore) Get

func (store *MemoryStore) Get(id Id, key string) interface{}

func (*MemoryStore) Run

func (store *MemoryStore) Run() error

func (*MemoryStore) Set

func (store *MemoryStore) Set(id Id, key string, value interface{})

func (*MemoryStore) SetMaxAge

func (store *MemoryStore) SetMaxAge(maxAge time.Duration)

type Session

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

func NewSession

func NewSession(id Id, maxAge time.Duration, manager *Manager) *Session

func (*Session) Del

func (session *Session) Del(key string) bool

func (*Session) Get

func (session *Session) Get(key string) interface{}

func (*Session) Id

func (session *Session) Id() Id

func (*Session) Invalidate

func (session *Session) Invalidate(rw http.ResponseWriter)

func (*Session) IsValid

func (session *Session) IsValid() bool

func (*Session) Set

func (session *Session) Set(key string, value interface{})

func (*Session) SetId

func (session *Session) SetId(id Id)

func (*Session) SetMaxAge

func (session *Session) SetMaxAge(maxAge time.Duration)

type Sha1Generator

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

func NewSha1Generator

func NewSha1Generator(hashKey string) *Sha1Generator

func (*Sha1Generator) Gen

func (gen *Sha1Generator) Gen(req *http.Request) Id

func (*Sha1Generator) IsValid

func (gen *Sha1Generator) IsValid(id Id) bool

type Store

type Store interface {
	Get(id Id, key string) interface{}
	Set(id Id, key string, value interface{})
	Del(id Id, key string) bool
	Clear(id Id) bool
	Add(id Id)
	Exist(id Id) bool
	SetMaxAge(maxAge time.Duration)
	Run() error
}

type Transfer

type Transfer interface {
	SetMaxAge(maxAge time.Duration)
	Get(req *http.Request) (Id, error)
	Set(req *http.Request, rw http.ResponseWriter, id Id)
	Clear(rw http.ResponseWriter)
}

Transfer provide and set sessionid

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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