f4d62d31 by slene

beego: fix dependency of cache / session sub package

1 parent acbdeb62
...@@ -5,6 +5,8 @@ import ( ...@@ -5,6 +5,8 @@ import (
5 "errors" 5 "errors"
6 6
7 "github.com/beego/memcache" 7 "github.com/beego/memcache"
8
9 "github.com/astaxie/beego/cache"
8 ) 10 )
9 11
10 // Memcache adapter. 12 // Memcache adapter.
...@@ -147,5 +149,5 @@ func (rc *MemcacheCache) connectInit() (*memcache.Connection, error) { ...@@ -147,5 +149,5 @@ func (rc *MemcacheCache) connectInit() (*memcache.Connection, error) {
147 } 149 }
148 150
149 func init() { 151 func init() {
150 Register("memcache", NewMemCache()) 152 cache.Register("memcache", NewMemCache())
151 } 153 }
......
...@@ -6,6 +6,8 @@ import ( ...@@ -6,6 +6,8 @@ import (
6 "time" 6 "time"
7 7
8 "github.com/beego/redigo/redis" 8 "github.com/beego/redigo/redis"
9
10 "github.com/astaxie/beego/cache"
9 ) 11 )
10 12
11 var ( 13 var (
...@@ -130,5 +132,5 @@ func (rc *RedisCache) connectInit() { ...@@ -130,5 +132,5 @@ func (rc *RedisCache) connectInit() {
130 } 132 }
131 133
132 func init() { 134 func init() {
133 Register("redis", NewRedisCache()) 135 cache.Register("redis", NewRedisCache())
134 } 136 }
......
1 package session 1 package session
2 2
3 import ( 3 import (
4 "github.com/couchbaselabs/go-couchbase"
5 "net/http" 4 "net/http"
6 "strings" 5 "strings"
7 "sync" 6 "sync"
7
8 "github.com/couchbaselabs/go-couchbase"
9
10 "github.com/astaxie/beego/session"
8 ) 11 )
9 12
10 var couchbpder = &CouchbaseProvider{} 13 var couchbpder = &CouchbaseProvider{}
...@@ -70,7 +73,7 @@ func (cs *CouchbaseSessionStore) SessionRelease(w http.ResponseWriter) { ...@@ -70,7 +73,7 @@ func (cs *CouchbaseSessionStore) SessionRelease(w http.ResponseWriter) {
70 return 73 return
71 } 74 }
72 75
73 bo, err := encodeGob(cs.values) 76 bo, err := session.EncodeGob(cs.values)
74 if err != nil { 77 if err != nil {
75 return 78 return
76 } 79 }
...@@ -117,7 +120,7 @@ func (cp *CouchbaseProvider) SessionInit(maxlifetime int64, savePath string) err ...@@ -117,7 +120,7 @@ func (cp *CouchbaseProvider) SessionInit(maxlifetime int64, savePath string) err
117 } 120 }
118 121
119 // read couchbase session by sid 122 // read couchbase session by sid
120 func (cp *CouchbaseProvider) SessionRead(sid string) (SessionStore, error) { 123 func (cp *CouchbaseProvider) SessionRead(sid string) (session.SessionStore, error) {
121 cp.b = cp.getBucket() 124 cp.b = cp.getBucket()
122 125
123 var doc []byte 126 var doc []byte
...@@ -127,7 +130,7 @@ func (cp *CouchbaseProvider) SessionRead(sid string) (SessionStore, error) { ...@@ -127,7 +130,7 @@ func (cp *CouchbaseProvider) SessionRead(sid string) (SessionStore, error) {
127 if doc == nil { 130 if doc == nil {
128 kv = make(map[interface{}]interface{}) 131 kv = make(map[interface{}]interface{})
129 } else { 132 } else {
130 kv, err = decodeGob(doc) 133 kv, err = session.DecodeGob(doc)
131 if err != nil { 134 if err != nil {
132 return nil, err 135 return nil, err
133 } 136 }
...@@ -150,7 +153,7 @@ func (cp *CouchbaseProvider) SessionExist(sid string) bool { ...@@ -150,7 +153,7 @@ func (cp *CouchbaseProvider) SessionExist(sid string) bool {
150 } 153 }
151 } 154 }
152 155
153 func (cp *CouchbaseProvider) SessionRegenerate(oldsid, sid string) (SessionStore, error) { 156 func (cp *CouchbaseProvider) SessionRegenerate(oldsid, sid string) (session.SessionStore, error) {
154 cp.b = cp.getBucket() 157 cp.b = cp.getBucket()
155 158
156 var doc []byte 159 var doc []byte
...@@ -172,7 +175,7 @@ func (cp *CouchbaseProvider) SessionRegenerate(oldsid, sid string) (SessionStore ...@@ -172,7 +175,7 @@ func (cp *CouchbaseProvider) SessionRegenerate(oldsid, sid string) (SessionStore
172 if doc == nil { 175 if doc == nil {
173 kv = make(map[interface{}]interface{}) 176 kv = make(map[interface{}]interface{})
174 } else { 177 } else {
175 kv, err = decodeGob(doc) 178 kv, err = session.DecodeGob(doc)
176 if err != nil { 179 if err != nil {
177 return nil, err 180 return nil, err
178 } 181 }
...@@ -199,5 +202,5 @@ func (cp *CouchbaseProvider) SessionAll() int { ...@@ -199,5 +202,5 @@ func (cp *CouchbaseProvider) SessionAll() int {
199 } 202 }
200 203
201 func init() { 204 func init() {
202 Register("couchbase", couchbpder) 205 session.Register("couchbase", couchbpder)
203 } 206 }
......
...@@ -14,6 +14,8 @@ import ( ...@@ -14,6 +14,8 @@ import (
14 "sync" 14 "sync"
15 "time" 15 "time"
16 16
17 "github.com/astaxie/beego/session"
18
17 _ "github.com/go-sql-driver/mysql" 19 _ "github.com/go-sql-driver/mysql"
18 ) 20 )
19 21
...@@ -73,7 +75,7 @@ func (st *MysqlSessionStore) SessionID() string { ...@@ -73,7 +75,7 @@ func (st *MysqlSessionStore) SessionID() string {
73 // must call this method to save values to database. 75 // must call this method to save values to database.
74 func (st *MysqlSessionStore) SessionRelease(w http.ResponseWriter) { 76 func (st *MysqlSessionStore) SessionRelease(w http.ResponseWriter) {
75 defer st.c.Close() 77 defer st.c.Close()
76 b, err := encodeGob(st.values) 78 b, err := session.EncodeGob(st.values)
77 if err != nil { 79 if err != nil {
78 return 80 return
79 } 81 }
...@@ -106,7 +108,7 @@ func (mp *MysqlProvider) SessionInit(maxlifetime int64, savePath string) error { ...@@ -106,7 +108,7 @@ func (mp *MysqlProvider) SessionInit(maxlifetime int64, savePath string) error {
106 } 108 }
107 109
108 // get mysql session by sid 110 // get mysql session by sid
109 func (mp *MysqlProvider) SessionRead(sid string) (SessionStore, error) { 111 func (mp *MysqlProvider) SessionRead(sid string) (session.SessionStore, error) {
110 c := mp.connectInit() 112 c := mp.connectInit()
111 row := c.QueryRow("select session_data from session where session_key=?", sid) 113 row := c.QueryRow("select session_data from session where session_key=?", sid)
112 var sessiondata []byte 114 var sessiondata []byte
...@@ -119,7 +121,7 @@ func (mp *MysqlProvider) SessionRead(sid string) (SessionStore, error) { ...@@ -119,7 +121,7 @@ func (mp *MysqlProvider) SessionRead(sid string) (SessionStore, error) {
119 if len(sessiondata) == 0 { 121 if len(sessiondata) == 0 {
120 kv = make(map[interface{}]interface{}) 122 kv = make(map[interface{}]interface{})
121 } else { 123 } else {
122 kv, err = decodeGob(sessiondata) 124 kv, err = session.DecodeGob(sessiondata)
123 if err != nil { 125 if err != nil {
124 return nil, err 126 return nil, err
125 } 127 }
...@@ -143,7 +145,7 @@ func (mp *MysqlProvider) SessionExist(sid string) bool { ...@@ -143,7 +145,7 @@ func (mp *MysqlProvider) SessionExist(sid string) bool {
143 } 145 }
144 146
145 // generate new sid for mysql session 147 // generate new sid for mysql session
146 func (mp *MysqlProvider) SessionRegenerate(oldsid, sid string) (SessionStore, error) { 148 func (mp *MysqlProvider) SessionRegenerate(oldsid, sid string) (session.SessionStore, error) {
147 c := mp.connectInit() 149 c := mp.connectInit()
148 row := c.QueryRow("select session_data from session where session_key=?", oldsid) 150 row := c.QueryRow("select session_data from session where session_key=?", oldsid)
149 var sessiondata []byte 151 var sessiondata []byte
...@@ -156,7 +158,7 @@ func (mp *MysqlProvider) SessionRegenerate(oldsid, sid string) (SessionStore, er ...@@ -156,7 +158,7 @@ func (mp *MysqlProvider) SessionRegenerate(oldsid, sid string) (SessionStore, er
156 if len(sessiondata) == 0 { 158 if len(sessiondata) == 0 {
157 kv = make(map[interface{}]interface{}) 159 kv = make(map[interface{}]interface{})
158 } else { 160 } else {
159 kv, err = decodeGob(sessiondata) 161 kv, err = session.DecodeGob(sessiondata)
160 if err != nil { 162 if err != nil {
161 return nil, err 163 return nil, err
162 } 164 }
...@@ -194,5 +196,5 @@ func (mp *MysqlProvider) SessionAll() int { ...@@ -194,5 +196,5 @@ func (mp *MysqlProvider) SessionAll() int {
194 } 196 }
195 197
196 func init() { 198 func init() {
197 Register("mysql", mysqlpder) 199 session.Register("mysql", mysqlpder)
198 } 200 }
......
...@@ -34,6 +34,9 @@ import ( ...@@ -34,6 +34,9 @@ import (
34 "net/http" 34 "net/http"
35 "sync" 35 "sync"
36 "time" 36 "time"
37
38 "github.com/astaxie/beego/session"
39
37 _ "github.com/lib/pq" 40 _ "github.com/lib/pq"
38 ) 41 )
39 42
...@@ -93,7 +96,7 @@ func (st *PostgresqlSessionStore) SessionID() string { ...@@ -93,7 +96,7 @@ func (st *PostgresqlSessionStore) SessionID() string {
93 // must call this method to save values to database. 96 // must call this method to save values to database.
94 func (st *PostgresqlSessionStore) SessionRelease(w http.ResponseWriter) { 97 func (st *PostgresqlSessionStore) SessionRelease(w http.ResponseWriter) {
95 defer st.c.Close() 98 defer st.c.Close()
96 b, err := encodeGob(st.values) 99 b, err := session.EncodeGob(st.values)
97 if err != nil { 100 if err != nil {
98 return 101 return
99 } 102 }
...@@ -126,7 +129,7 @@ func (mp *PostgresqlProvider) SessionInit(maxlifetime int64, savePath string) er ...@@ -126,7 +129,7 @@ func (mp *PostgresqlProvider) SessionInit(maxlifetime int64, savePath string) er
126 } 129 }
127 130
128 // get postgresql session by sid 131 // get postgresql session by sid
129 func (mp *PostgresqlProvider) SessionRead(sid string) (SessionStore, error) { 132 func (mp *PostgresqlProvider) SessionRead(sid string) (session.SessionStore, error) {
130 c := mp.connectInit() 133 c := mp.connectInit()
131 row := c.QueryRow("select session_data from session where session_key=$1", sid) 134 row := c.QueryRow("select session_data from session where session_key=$1", sid)
132 var sessiondata []byte 135 var sessiondata []byte
...@@ -146,7 +149,7 @@ func (mp *PostgresqlProvider) SessionRead(sid string) (SessionStore, error) { ...@@ -146,7 +149,7 @@ func (mp *PostgresqlProvider) SessionRead(sid string) (SessionStore, error) {
146 if len(sessiondata) == 0 { 149 if len(sessiondata) == 0 {
147 kv = make(map[interface{}]interface{}) 150 kv = make(map[interface{}]interface{})
148 } else { 151 } else {
149 kv, err = decodeGob(sessiondata) 152 kv, err = session.DecodeGob(sessiondata)
150 if err != nil { 153 if err != nil {
151 return nil, err 154 return nil, err
152 } 155 }
...@@ -171,7 +174,7 @@ func (mp *PostgresqlProvider) SessionExist(sid string) bool { ...@@ -171,7 +174,7 @@ func (mp *PostgresqlProvider) SessionExist(sid string) bool {
171 } 174 }
172 175
173 // generate new sid for postgresql session 176 // generate new sid for postgresql session
174 func (mp *PostgresqlProvider) SessionRegenerate(oldsid, sid string) (SessionStore, error) { 177 func (mp *PostgresqlProvider) SessionRegenerate(oldsid, sid string) (session.SessionStore, error) {
175 c := mp.connectInit() 178 c := mp.connectInit()
176 row := c.QueryRow("select session_data from session where session_key=$1", oldsid) 179 row := c.QueryRow("select session_data from session where session_key=$1", oldsid)
177 var sessiondata []byte 180 var sessiondata []byte
...@@ -185,7 +188,7 @@ func (mp *PostgresqlProvider) SessionRegenerate(oldsid, sid string) (SessionStor ...@@ -185,7 +188,7 @@ func (mp *PostgresqlProvider) SessionRegenerate(oldsid, sid string) (SessionStor
185 if len(sessiondata) == 0 { 188 if len(sessiondata) == 0 {
186 kv = make(map[interface{}]interface{}) 189 kv = make(map[interface{}]interface{})
187 } else { 190 } else {
188 kv, err = decodeGob(sessiondata) 191 kv, err = session.DecodeGob(sessiondata)
189 if err != nil { 192 if err != nil {
190 return nil, err 193 return nil, err
191 } 194 }
...@@ -223,5 +226,5 @@ func (mp *PostgresqlProvider) SessionAll() int { ...@@ -223,5 +226,5 @@ func (mp *PostgresqlProvider) SessionAll() int {
223 } 226 }
224 227
225 func init() { 228 func init() {
226 Register("postgresql", postgresqlpder) 229 session.Register("postgresql", postgresqlpder)
227 } 230 }
......
...@@ -6,6 +6,8 @@ import ( ...@@ -6,6 +6,8 @@ import (
6 "strings" 6 "strings"
7 "sync" 7 "sync"
8 8
9 "github.com/astaxie/beego/session"
10
9 "github.com/beego/redigo/redis" 11 "github.com/beego/redigo/redis"
10 ) 12 )
11 13
...@@ -77,7 +79,7 @@ func (rs *RedisSessionStore) SessionRelease(w http.ResponseWriter) { ...@@ -77,7 +79,7 @@ func (rs *RedisSessionStore) SessionRelease(w http.ResponseWriter) {
77 return 79 return
78 } 80 }
79 81
80 b, err := encodeGob(rs.values) 82 b, err := session.EncodeGob(rs.values)
81 if err != nil { 83 if err != nil {
82 return 84 return
83 } 85 }
...@@ -134,7 +136,7 @@ func (rp *RedisProvider) SessionInit(maxlifetime int64, savePath string) error { ...@@ -134,7 +136,7 @@ func (rp *RedisProvider) SessionInit(maxlifetime int64, savePath string) error {
134 } 136 }
135 137
136 // read redis session by sid 138 // read redis session by sid
137 func (rp *RedisProvider) SessionRead(sid string) (SessionStore, error) { 139 func (rp *RedisProvider) SessionRead(sid string) (session.SessionStore, error) {
138 c := rp.poollist.Get() 140 c := rp.poollist.Get()
139 defer c.Close() 141 defer c.Close()
140 142
...@@ -143,7 +145,7 @@ func (rp *RedisProvider) SessionRead(sid string) (SessionStore, error) { ...@@ -143,7 +145,7 @@ func (rp *RedisProvider) SessionRead(sid string) (SessionStore, error) {
143 if len(kvs) == 0 { 145 if len(kvs) == 0 {
144 kv = make(map[interface{}]interface{}) 146 kv = make(map[interface{}]interface{})
145 } else { 147 } else {
146 kv, err = decodeGob([]byte(kvs)) 148 kv, err = session.DecodeGob([]byte(kvs))
147 if err != nil { 149 if err != nil {
148 return nil, err 150 return nil, err
149 } 151 }
...@@ -166,7 +168,7 @@ func (rp *RedisProvider) SessionExist(sid string) bool { ...@@ -166,7 +168,7 @@ func (rp *RedisProvider) SessionExist(sid string) bool {
166 } 168 }
167 169
168 // generate new sid for redis session 170 // generate new sid for redis session
169 func (rp *RedisProvider) SessionRegenerate(oldsid, sid string) (SessionStore, error) { 171 func (rp *RedisProvider) SessionRegenerate(oldsid, sid string) (session.SessionStore, error) {
170 c := rp.poollist.Get() 172 c := rp.poollist.Get()
171 defer c.Close() 173 defer c.Close()
172 174
...@@ -185,7 +187,7 @@ func (rp *RedisProvider) SessionRegenerate(oldsid, sid string) (SessionStore, er ...@@ -185,7 +187,7 @@ func (rp *RedisProvider) SessionRegenerate(oldsid, sid string) (SessionStore, er
185 if len(kvs) == 0 { 187 if len(kvs) == 0 {
186 kv = make(map[interface{}]interface{}) 188 kv = make(map[interface{}]interface{})
187 } else { 189 } else {
188 kv, err = decodeGob([]byte(kvs)) 190 kv, err = session.DecodeGob([]byte(kvs))
189 if err != nil { 191 if err != nil {
190 return nil, err 192 return nil, err
191 } 193 }
...@@ -215,5 +217,5 @@ func (rp *RedisProvider) SessionAll() int { ...@@ -215,5 +217,5 @@ func (rp *RedisProvider) SessionAll() int {
215 } 217 }
216 218
217 func init() { 219 func init() {
218 Register("redis", redispder) 220 session.Register("redis", redispder)
219 } 221 }
......
...@@ -70,7 +70,7 @@ func (fs *FileSessionStore) SessionID() string { ...@@ -70,7 +70,7 @@ func (fs *FileSessionStore) SessionID() string {
70 // Write file session to local file with Gob string 70 // Write file session to local file with Gob string
71 func (fs *FileSessionStore) SessionRelease(w http.ResponseWriter) { 71 func (fs *FileSessionStore) SessionRelease(w http.ResponseWriter) {
72 defer fs.f.Close() 72 defer fs.f.Close()
73 b, err := encodeGob(fs.values) 73 b, err := EncodeGob(fs.values)
74 if err != nil { 74 if err != nil {
75 return 75 return
76 } 76 }
...@@ -123,7 +123,7 @@ func (fp *FileProvider) SessionRead(sid string) (SessionStore, error) { ...@@ -123,7 +123,7 @@ func (fp *FileProvider) SessionRead(sid string) (SessionStore, error) {
123 if len(b) == 0 { 123 if len(b) == 0 {
124 kv = make(map[interface{}]interface{}) 124 kv = make(map[interface{}]interface{})
125 } else { 125 } else {
126 kv, err = decodeGob(b) 126 kv, err = DecodeGob(b)
127 if err != nil { 127 if err != nil {
128 return nil, err 128 return nil, err
129 } 129 }
...@@ -222,7 +222,7 @@ func (fp *FileProvider) SessionRegenerate(oldsid, sid string) (SessionStore, err ...@@ -222,7 +222,7 @@ func (fp *FileProvider) SessionRegenerate(oldsid, sid string) (SessionStore, err
222 if len(b) == 0 { 222 if len(b) == 0 {
223 kv = make(map[interface{}]interface{}) 223 kv = make(map[interface{}]interface{})
224 } else { 224 } else {
225 kv, err = decodeGob(b) 225 kv, err = DecodeGob(b)
226 if err != nil { 226 if err != nil {
227 return nil, err 227 return nil, err
228 } 228 }
......
...@@ -27,7 +27,7 @@ func init() { ...@@ -27,7 +27,7 @@ func init() {
27 gob.Register(map[int]int64{}) 27 gob.Register(map[int]int64{})
28 } 28 }
29 29
30 func encodeGob(obj map[interface{}]interface{}) ([]byte, error) { 30 func EncodeGob(obj map[interface{}]interface{}) ([]byte, error) {
31 buf := bytes.NewBuffer(nil) 31 buf := bytes.NewBuffer(nil)
32 enc := gob.NewEncoder(buf) 32 enc := gob.NewEncoder(buf)
33 err := enc.Encode(obj) 33 err := enc.Encode(obj)
...@@ -37,7 +37,7 @@ func encodeGob(obj map[interface{}]interface{}) ([]byte, error) { ...@@ -37,7 +37,7 @@ func encodeGob(obj map[interface{}]interface{}) ([]byte, error) {
37 return buf.Bytes(), nil 37 return buf.Bytes(), nil
38 } 38 }
39 39
40 func decodeGob(encoded []byte) (map[interface{}]interface{}, error) { 40 func DecodeGob(encoded []byte) (map[interface{}]interface{}, error) {
41 buf := bytes.NewBuffer(encoded) 41 buf := bytes.NewBuffer(encoded)
42 dec := gob.NewDecoder(buf) 42 dec := gob.NewDecoder(buf)
43 var out map[interface{}]interface{} 43 var out map[interface{}]interface{}
...@@ -97,8 +97,8 @@ func decrypt(block cipher.Block, value []byte) ([]byte, error) { ...@@ -97,8 +97,8 @@ func decrypt(block cipher.Block, value []byte) ([]byte, error) {
97 func encodeCookie(block cipher.Block, hashKey, name string, value map[interface{}]interface{}) (string, error) { 97 func encodeCookie(block cipher.Block, hashKey, name string, value map[interface{}]interface{}) (string, error) {
98 var err error 98 var err error
99 var b []byte 99 var b []byte
100 // 1. encodeGob. 100 // 1. EncodeGob.
101 if b, err = encodeGob(value); err != nil { 101 if b, err = EncodeGob(value); err != nil {
102 return "", err 102 return "", err
103 } 103 }
104 // 2. Encrypt (optional). 104 // 2. Encrypt (optional).
...@@ -158,8 +158,8 @@ func decodeCookie(block cipher.Block, hashKey, name, value string, gcmaxlifetime ...@@ -158,8 +158,8 @@ func decodeCookie(block cipher.Block, hashKey, name, value string, gcmaxlifetime
158 if b, err = decrypt(block, b); err != nil { 158 if b, err = decrypt(block, b); err != nil {
159 return nil, err 159 return nil, err
160 } 160 }
161 // 5. decodeGob. 161 // 5. DecodeGob.
162 if dst, err := decodeGob(b); err != nil { 162 if dst, err := DecodeGob(b); err != nil {
163 return nil, err 163 return nil, err
164 } else { 164 } else {
165 return dst, nil 165 return dst, nil
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!