@@ -176,6 +176,50 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor
176
176
}
177
177
}
178
178
179
+ var (
180
+ sessionManager * session.Manager
181
+ )
182
+
183
+ func prepareOptions (options []session.Options ) session.Options {
184
+ var opt session.Options
185
+ if len (options ) > 0 {
186
+ opt = options [0 ]
187
+ }
188
+
189
+ if len (opt .Provider ) == 0 {
190
+ opt .Provider = "memory"
191
+ }
192
+ if len (opt .ProviderConfig ) == 0 {
193
+ opt .ProviderConfig = "data/sessions"
194
+ }
195
+ if len (opt .CookieName ) == 0 {
196
+ opt .CookieName = "MacaronSession"
197
+ }
198
+ if len (opt .CookiePath ) == 0 {
199
+ opt .CookiePath = "/"
200
+ }
201
+ if opt .Gclifetime == 0 {
202
+ opt .Gclifetime = 3600
203
+ }
204
+ if opt .Maxlifetime == 0 {
205
+ opt .Maxlifetime = opt .Gclifetime
206
+ }
207
+ if ! opt .Secure {
208
+ opt .Secure = false
209
+ }
210
+ if opt .IDLength == 0 {
211
+ opt .IDLength = 16
212
+ }
213
+ if len (opt .FlashEncryptionKey ) == 0 {
214
+ opt .FlashEncryptionKey = ""
215
+ }
216
+ if len (opt .FlashEncryptionKey ) == 0 {
217
+ opt .FlashEncryptionKey , _ = session .NewSecret ()
218
+ }
219
+
220
+ return opt
221
+ }
222
+
179
223
// NewChi creates a chi Router
180
224
func NewChi () chi.Router {
181
225
c := chi .NewRouter ()
@@ -185,7 +229,8 @@ func NewChi() chi.Router {
185
229
c .Use (LoggerHandler (setting .RouterLogLevel ))
186
230
}
187
231
}
188
- c .Use (session .Sessioner (session.Options {
232
+
233
+ var opt = session.Options {
189
234
Provider : setting .SessionConfig .Provider ,
190
235
ProviderConfig : setting .SessionConfig .ProviderConfig ,
191
236
CookieName : setting .SessionConfig .CookieName ,
@@ -194,7 +239,14 @@ func NewChi() chi.Router {
194
239
Maxlifetime : setting .SessionConfig .Maxlifetime ,
195
240
Secure : setting .SessionConfig .Secure ,
196
241
Domain : setting .SessionConfig .Domain ,
197
- }))
242
+ }
243
+ opt = prepareOptions ([]session.Options {opt })
244
+
245
+ var err error
246
+ sessionManager , err = session .NewManager (opt .Provider , opt )
247
+ if err != nil {
248
+ panic (err )
249
+ }
198
250
199
251
c .Use (Recovery ())
200
252
if setting .EnableAccessLog {
0 commit comments