mirror of
https://github.com/astaxie/beego.git
synced 2025-06-20 08:40:40 +00:00
Revert "Merge pull request #4325 from flycash/revert1"
This reverts commitfad897346f
, reversing changes made toe284b0ddae
.
This commit is contained in:
.github/workflows
.gitignore.travis.ymlCONTRIBUTING.mdREADME.mdadapter
admin.goapp.gobeego.gobuild_info.gopolicy.gorouter.go
admin.goadmin_test.goapp.gobuild_info.gocache
config.goconfig
context
controller.godoc.goerror.gofilter.goflash.gofs.gograce
httplib
log.gologs
metric
migration
namespace.goorm
cmd.godb.godb_alias.gomodels.gomodels_boot.gomodels_fields.goorm.goorm_conds.goorm_log.goorm_queryset.goqb.goqb_mysql.goqb_tidb.goquery_setter_adapter.gotypes.goutils.goutils_test.go
plugins
apiauth
auth
authz
cors
session
couchbase
ledis
memcache
mysql
postgres
provider_adapter.goredis
redis_cluster
redis_sentinel
sess_cookie.gosess_cookie_test.gosess_file.gosess_file_test.gosess_mem.gosess_mem_test.gosess_test.gosess_utils.gosession.gossdb
store_adapter.goswagger
template.gotemplatefunc.gotemplatefunc_test.gotesting
toolbox
tree.gotree_test.goutils
caller.gocaller_test.go
captcha
debug.godebug_test.gofile.gomail.gomail_test.gopagination
rand.gorand_test.gosafemap.gosafemap_test.goslice.goslice_test.goutils.govalidation
client
cache
httplib
orm
README.mdcmd.gocmd_utils.godb.godb_alias.godb_alias_test.godb_mysql.godb_oracle.godb_postgres.godb_sqlite.godb_tables.godb_tidb.godb_utils.godo_nothing_orm.godo_nothing_orm_test.gofilter.gofilter_orm_decorator.gofilter_orm_decorator_test.gofilter_test.go
filter
bean
opentracing
prometheus
hints
invocation.gomigration
model_utils_test.gomodels.gomodels_boot.gomodels_fields.gomodels_info_f.gomodels_info_m.gomodels_test.gomodels_utils.gomodels_utils_test.goorm.goorm_conds.goorm_log.goorm_object.goorm_querym2m.goorm_queryset.goorm_raw.goorm_test.goqb.goqb_mysql.goqb_postgres.goqb_tidb.gotypes.goutils.goutils_test.gocore
bean
context.godoc.gofactory.gometadata.gotag_auto_wire_bean_factory.gotag_auto_wire_bean_factory_test.gotime_type_adapter.gotime_type_adapter_test.gotype_adapter.go
config
base_config_test.goconfig.goconfig_test.go
env
error.goetcd
fake.goglobal.goglobal_test.goini.goini_test.gojson
toml
xml
yaml
governor
logs
README.mdaccess_log.goaccess_log_test.go
alils
alils.goconfig.golog.pb.golog_config.golog_project.golog_store.gomachine_group.gorequest.gosignature.go
conn.goconn_test.goconsole.goconsole_test.goes
file.gofile_test.goformatter.goformatter_test.gojianliao.gojianliao_test.golog.golog_msg.golog_msg_test.golog_test.gologger.gologger_test.gomultifile.gomultifile_test.goslack.gosmtp.gosmtp_test.goutils
caller.gocaller_test.godebug.godebug_test.gofile.gofile_test.gokv.gokv_test.gomail.gomail_test.go
pagination
rand.gorand_test.gosafemap.gosafemap_test.goslice.goslice_test.gotestdata
time.goutils.goutils_test.govalidation
logs
orm
scripts
server/web
LICENSEadmin.goadmin_controller.goadmin_test.goadminui.gobeego.gofilter_chain_test.gofilter_test.goflash.goflash_test.gofs.go
captcha
config.goconfig_test.gocontext
acceptencoder.goacceptencoder_test.gocontext.gocontext_test.goinput.goinput_test.gooutput.go
controller.gocontroller_test.godoc.goerror.goerror_test.gofilter.goparam
renderer.goresponse.gofilter
apiauth
auth
authz
cors
opentracing
prometheus
grace
hooks.gomime.gonamespace.gonamespace_test.gopagination
parser.gopolicy.gorouter.gorouter_test.goserver.goserver_test.gosession
README.md
staticfile.gostaticfile_test.gostatistics.gostatistics_test.gocouchbase
ledis
memcache
mysql
postgres
redis
redis_cluster
redis_sentinel
sess_cookie.gosess_cookie_test.gosess_file.gosess_file_test.gosess_mem.gosess_mem_test.gosess_test.gosess_utils.gosession.gossdb
swagger
template.gotemplate_test.gotemplatefunc.gotemplatefunc_test.gotree.gotree_test.gounregroute_test.gotask
test
118
adapter/session/memcache/sess_memcache.go
Normal file
118
adapter/session/memcache/sess_memcache.go
Normal file
@ -0,0 +1,118 @@
|
||||
// Copyright 2014 beego Author. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Package memcache for session provider
|
||||
//
|
||||
// depend on github.com/bradfitz/gomemcache/memcache
|
||||
//
|
||||
// go install github.com/bradfitz/gomemcache/memcache
|
||||
//
|
||||
// Usage:
|
||||
// import(
|
||||
// _ "github.com/astaxie/beego/session/memcache"
|
||||
// "github.com/astaxie/beego/session"
|
||||
// )
|
||||
//
|
||||
// func init() {
|
||||
// globalSessions, _ = session.NewManager("memcache", ``{"cookieName":"gosessionid","gclifetime":3600,"ProviderConfig":"127.0.0.1:11211"}``)
|
||||
// go globalSessions.GC()
|
||||
// }
|
||||
//
|
||||
// more docs: http://beego.me/docs/module/session.md
|
||||
package memcache
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
|
||||
"github.com/astaxie/beego/adapter/session"
|
||||
|
||||
beemem "github.com/astaxie/beego/server/web/session/memcache"
|
||||
)
|
||||
|
||||
// SessionStore memcache session store
|
||||
type SessionStore beemem.SessionStore
|
||||
|
||||
// Set value in memcache session
|
||||
func (rs *SessionStore) Set(key, value interface{}) error {
|
||||
return (*beemem.SessionStore)(rs).Set(context.Background(), key, value)
|
||||
}
|
||||
|
||||
// Get value in memcache session
|
||||
func (rs *SessionStore) Get(key interface{}) interface{} {
|
||||
return (*beemem.SessionStore)(rs).Get(context.Background(), key)
|
||||
}
|
||||
|
||||
// Delete value in memcache session
|
||||
func (rs *SessionStore) Delete(key interface{}) error {
|
||||
return (*beemem.SessionStore)(rs).Delete(context.Background(), key)
|
||||
}
|
||||
|
||||
// Flush clear all values in memcache session
|
||||
func (rs *SessionStore) Flush() error {
|
||||
return (*beemem.SessionStore)(rs).Flush(context.Background())
|
||||
}
|
||||
|
||||
// SessionID get memcache session id
|
||||
func (rs *SessionStore) SessionID() string {
|
||||
return (*beemem.SessionStore)(rs).SessionID(context.Background())
|
||||
}
|
||||
|
||||
// SessionRelease save session values to memcache
|
||||
func (rs *SessionStore) SessionRelease(w http.ResponseWriter) {
|
||||
(*beemem.SessionStore)(rs).SessionRelease(context.Background(), w)
|
||||
}
|
||||
|
||||
// MemProvider memcache session provider
|
||||
type MemProvider beemem.MemProvider
|
||||
|
||||
// SessionInit init memcache session
|
||||
// savepath like
|
||||
// e.g. 127.0.0.1:9090
|
||||
func (rp *MemProvider) SessionInit(maxlifetime int64, savePath string) error {
|
||||
return (*beemem.MemProvider)(rp).SessionInit(context.Background(), maxlifetime, savePath)
|
||||
}
|
||||
|
||||
// SessionRead read memcache session by sid
|
||||
func (rp *MemProvider) SessionRead(sid string) (session.Store, error) {
|
||||
s, err := (*beemem.MemProvider)(rp).SessionRead(context.Background(), sid)
|
||||
return session.CreateNewToOldStoreAdapter(s), err
|
||||
}
|
||||
|
||||
// SessionExist check memcache session exist by sid
|
||||
func (rp *MemProvider) SessionExist(sid string) bool {
|
||||
res, _ := (*beemem.MemProvider)(rp).SessionExist(context.Background(), sid)
|
||||
return res
|
||||
}
|
||||
|
||||
// SessionRegenerate generate new sid for memcache session
|
||||
func (rp *MemProvider) SessionRegenerate(oldsid, sid string) (session.Store, error) {
|
||||
s, err := (*beemem.MemProvider)(rp).SessionRegenerate(context.Background(), oldsid, sid)
|
||||
return session.CreateNewToOldStoreAdapter(s), err
|
||||
}
|
||||
|
||||
// SessionDestroy delete memcache session by id
|
||||
func (rp *MemProvider) SessionDestroy(sid string) error {
|
||||
return (*beemem.MemProvider)(rp).SessionDestroy(context.Background(), sid)
|
||||
}
|
||||
|
||||
// SessionGC Impelment method, no used.
|
||||
func (rp *MemProvider) SessionGC() {
|
||||
(*beemem.MemProvider)(rp).SessionGC(context.Background())
|
||||
}
|
||||
|
||||
// SessionAll return all activeSession
|
||||
func (rp *MemProvider) SessionAll() int {
|
||||
return (*beemem.MemProvider)(rp).SessionAll(context.Background())
|
||||
}
|
Reference in New Issue
Block a user