Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
5b0149a1
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5b0149a1
编写于
4月 07, 2011
作者:
S
Santiago Pastorino
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revert "Eagerly load Signed and Permanent cookies"
This reverts commit
dffeda37
.
上级
17205435
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
17 deletion
+10
-17
actionpack/lib/action_dispatch/middleware/cookies.rb
actionpack/lib/action_dispatch/middleware/cookies.rb
+10
-17
未找到文件。
actionpack/lib/action_dispatch/middleware/cookies.rb
浏览文件 @
5b0149a1
...
...
@@ -116,8 +116,6 @@ def initialize(secret = nil, host = nil, secure = false)
@host
=
host
@secure
=
secure
@cookies
=
{}
@permanent
=
PermanentCookieJar
.
new
(
self
,
@secret
)
@signed
=
@secret
&&
SignedCookieJar
.
new
(
self
,
@secret
)
end
alias
:closed?
:frozen?
...
...
@@ -195,7 +193,9 @@ def delete(key, options = {})
#
# cookies.permanent.signed[:remember_me] = current_user.id
# # => Set-Cookie: remember_me=BAhU--848956038e692d7046deab32b7131856ab20e14e; path=/; expires=Sun, 16-Dec-2029 03:24:16 GMT
attr_reader
:permanent
def
permanent
@permanent
||=
PermanentCookieJar
.
new
(
self
,
@secret
)
end
# Returns a jar that'll automatically generate a signed representation of cookie value and verify it when reading from
# the cookie again. This is useful for creating cookies with values that the user is not supposed to change. If a signed
...
...
@@ -211,8 +211,7 @@ def delete(key, options = {})
#
# cookies.signed[:discount] # => 45
def
signed
SignedCookieJar
.
ensure_secret_provided
(
@secret
)
@signed
@signed
||=
SignedCookieJar
.
new
(
self
,
@secret
)
end
def
write
(
headers
)
...
...
@@ -229,9 +228,7 @@ def write_cookie?(cookie)
class
PermanentCookieJar
<
CookieJar
#:nodoc:
def
initialize
(
parent_jar
,
secret
)
@parent_jar
=
parent_jar
@secret
=
secret
@signed
=
@secret
&&
SignedCookieJar
.
new
(
self
,
@secret
)
@parent_jar
,
@secret
=
parent_jar
,
secret
end
def
[]=
(
key
,
options
)
...
...
@@ -247,8 +244,7 @@ def []=(key, options)
end
def
signed
SignedCookieJar
.
ensure_secret_provided
(
@secret
)
@signed
@signed
||=
SignedCookieJar
.
new
(
self
,
@secret
)
end
def
method_missing
(
method
,
*
arguments
,
&
block
)
...
...
@@ -261,8 +257,7 @@ class SignedCookieJar < CookieJar #:nodoc:
SECRET_MIN_LENGTH
=
30
# Characters
def
initialize
(
parent_jar
,
secret
)
self
.
class
.
ensure_secret_provided
(
secret
)
self
.
class
.
ensure_secret_length
(
secret
)
ensure_secret_secure
(
secret
)
@parent_jar
=
parent_jar
@verifier
=
ActiveSupport
::
MessageVerifier
.
new
(
secret
)
end
...
...
@@ -294,7 +289,9 @@ def method_missing(method, *arguments, &block)
protected
def
self
.
ensure_secret_provided
(
secret
)
# To prevent users from using something insecure like "Password" we make sure that the
# secret they've provided is at least 30 characters in length.
def
ensure_secret_secure
(
secret
)
if
secret
.
blank?
raise
ArgumentError
,
"A secret is required to generate an "
+
"integrity hash for cookie session data. Use "
+
...
...
@@ -302,11 +299,7 @@ def self.ensure_secret_provided(secret)
"least
#{
SECRET_MIN_LENGTH
}
characters
\"
"
+
"in config/initializers/secret_token.rb"
end
end
# To prevent users from using something insecure like "Password" we make sure that the
# secret they've provided is at least 30 characters in length.
def
self
.
ensure_secret_length
(
secret
)
if
secret
.
length
<
SECRET_MIN_LENGTH
raise
ArgumentError
,
"Secret should be something secure, "
+
"like
\"
#{
ActiveSupport
::
SecureRandom
.
hex
(
16
)
}
\"
. The value you "
+
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录