Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
张磊
/
FileStorageBeego
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
d2eece9a
authored
2014-05-27 15:45:35 +0800
by
astaxie
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
session: #620 make the session never read empty
1 parent
c3a23b28
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
5 deletions
session/sess_utils.go
session/session.go
session/sess_utils.go
View file @
d2eece9
...
...
@@ -20,6 +20,8 @@ import (
"io"
"strconv"
"time"
"github.com/astaxie/beego/utils"
)
func
init
()
{
...
...
@@ -60,8 +62,8 @@ func DecodeGob(encoded []byte) (map[interface{}]interface{}, error) {
// generateRandomKey creates a random key with the given strength.
func
generateRandomKey
(
strength
int
)
[]
byte
{
k
:=
make
([]
byte
,
strength
)
if
_
,
err
:=
io
.
ReadFull
(
rand
.
Reader
,
k
);
err
!=
nil
{
return
nil
if
n
,
err
:=
io
.
ReadFull
(
rand
.
Reader
,
k
);
n
!=
strength
||
err
!=
nil
{
return
utils
.
RandomCreateBytes
(
strength
)
}
return
k
}
...
...
session/session.go
View file @
d2eece9
...
...
@@ -18,6 +18,8 @@ import (
"net/http"
"net/url"
"time"
"github.com/astaxie/beego/utils"
)
// SessionStore contains all data for one session process with specific id.
...
...
@@ -237,9 +239,9 @@ func (manager *Manager) SetSecure(secure bool) {
// generate session id with rand string, unix nano time, remote addr by hash function.
func
(
manager
*
Manager
)
sessionId
(
r
*
http
.
Request
)
(
sid
string
)
{
bs
:=
make
([]
byte
,
24
)
if
_
,
err
:=
io
.
ReadFull
(
rand
.
Reader
,
bs
);
err
!=
nil
{
return
""
bs
:=
make
([]
byte
,
32
)
if
n
,
err
:=
io
.
ReadFull
(
rand
.
Reader
,
bs
);
n
!=
32
||
err
!=
nil
{
bs
=
utils
.
RandomCreateBytes
(
32
)
}
sig
:=
fmt
.
Sprintf
(
"%s%d%s"
,
r
.
RemoteAddr
,
time
.
Now
()
.
UnixNano
(),
bs
)
if
manager
.
config
.
SessionIDHashFunc
==
"md5"
{
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment