Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
70597762
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,发现更多精彩内容 >>
提交
70597762
编写于
8月 08, 2014
作者:
S
Santiago Pastorino
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #16434 from strzalek/cookies-digest-config-option
Add digest config option for SignedCookiesJar
上级
dde91e9b
629f4e00
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
38 addition
and
3 deletion
+38
-3
actionpack/CHANGELOG.md
actionpack/CHANGELOG.md
+5
-0
actionpack/lib/action_dispatch/middleware/cookies.rb
actionpack/lib/action_dispatch/middleware/cookies.rb
+8
-2
actionpack/test/dispatch/cookies_test.rb
actionpack/test/dispatch/cookies_test.rb
+17
-0
railties/CHANGELOG.md
railties/CHANGELOG.md
+6
-0
railties/lib/rails/application.rb
railties/lib/rails/application.rb
+2
-1
未找到文件。
actionpack/CHANGELOG.md
浏览文件 @
70597762
*
Add
`config.action_dispatch.cookies_digest`
option for setting custom
digest. The default remains the same - 'SHA1'.
*Łukasz Strzałkowski*
*
Extract source code for the entire exception stack trace for
better debugging and diagnosis.
...
...
actionpack/lib/action_dispatch/middleware/cookies.rb
浏览文件 @
70597762
...
...
@@ -90,6 +90,7 @@ class Cookies
SECRET_TOKEN
=
"action_dispatch.secret_token"
.
freeze
SECRET_KEY_BASE
=
"action_dispatch.secret_key_base"
.
freeze
COOKIES_SERIALIZER
=
"action_dispatch.cookies_serializer"
.
freeze
COOKIES_DIGEST
=
"action_dispatch.cookies_digest"
.
freeze
# Cookies can typically store 4096 bytes.
MAX_COOKIE_SIZE
=
4096
...
...
@@ -212,7 +213,8 @@ def self.options_for_env(env) #:nodoc:
secret_token:
env
[
SECRET_TOKEN
],
secret_key_base:
env
[
SECRET_KEY_BASE
],
upgrade_legacy_signed_cookies:
env
[
SECRET_TOKEN
].
present?
&&
env
[
SECRET_KEY_BASE
].
present?
,
serializer:
env
[
COOKIES_SERIALIZER
]
serializer:
env
[
COOKIES_SERIALIZER
],
digest:
env
[
COOKIES_DIGEST
]
}
end
...
...
@@ -441,6 +443,10 @@ def serializer
serializer
end
end
def
digest
@options
[
:digest
]
||
'SHA1'
end
end
class
SignedCookieJar
#:nodoc:
...
...
@@ -451,7 +457,7 @@ def initialize(parent_jar, key_generator, options = {})
@parent_jar
=
parent_jar
@options
=
options
secret
=
key_generator
.
generate_key
(
@options
[
:signed_cookie_salt
])
@verifier
=
ActiveSupport
::
MessageVerifier
.
new
(
secret
,
serializer:
NullSerializer
)
@verifier
=
ActiveSupport
::
MessageVerifier
.
new
(
secret
,
digest:
digest
,
serializer:
NullSerializer
)
end
def
[]
(
name
)
...
...
actionpack/test/dispatch/cookies_test.rb
浏览文件 @
70597762
...
...
@@ -369,6 +369,23 @@ def test_read_permanent_cookie
assert_equal
'Jamie'
,
@controller
.
send
(
:cookies
).
permanent
[
:user_name
]
end
def
test_signed_cookie_using_default_digest
get
:set_signed_cookie
cookies
=
@controller
.
send
:cookies
assert_not_equal
45
,
cookies
[
:user_id
]
assert_equal
45
,
cookies
.
signed
[
:user_id
]
assert_equal
'SHA1'
,
cookies
.
signed
.
instance_variable_get
(
:"@verifier"
).
instance_variable_get
(
:"@digest"
)
end
def
test_signed_cookie_using_custom_digest
@request
.
env
[
"action_dispatch.cookies_digest"
]
=
'SHA256'
get
:set_signed_cookie
cookies
=
@controller
.
send
:cookies
assert_not_equal
45
,
cookies
[
:user_id
]
assert_equal
45
,
cookies
.
signed
[
:user_id
]
assert_equal
'SHA256'
,
cookies
.
signed
.
instance_variable_get
(
:"@verifier"
).
instance_variable_get
(
:"@digest"
)
end
def
test_signed_cookie_using_default_serializer
get
:set_signed_cookie
cookies
=
@controller
.
send
:cookies
...
...
railties/CHANGELOG.md
浏览文件 @
70597762
*
The
`Rails.application.message_verifier`
now returns ActiveSupport::MessageVerifier
preconfigured with
`:digest`
and
`:serializer`
values set to
`config.action_dispatch.cookies_digest`
and
`config.action_dispatch.cookies_serializer`
accordingly.
*Łukasz Strzałkowski*
*
Add
`after_bundle`
callbacks in Rails templates. Useful for allowing the
generated binstubs to be added to version control.
...
...
railties/lib/rails/application.rb
浏览文件 @
70597762
...
...
@@ -200,7 +200,7 @@ def key_generator
def
message_verifier
(
verifier_name
)
@message_verifiers
[
verifier_name
]
||=
begin
secret
=
key_generator
.
generate_key
(
verifier_name
.
to_s
)
ActiveSupport
::
MessageVerifier
.
new
(
secret
)
ActiveSupport
::
MessageVerifier
.
new
(
secret
,
digest:
config
.
action_dispatch
.
cookies_digest
,
serializer:
config
.
action_dispatch
.
cookies_serializer
)
end
end
...
...
@@ -257,6 +257,7 @@ def env_config
"action_dispatch.encrypted_cookie_salt"
=>
config
.
action_dispatch
.
encrypted_cookie_salt
,
"action_dispatch.encrypted_signed_cookie_salt"
=>
config
.
action_dispatch
.
encrypted_signed_cookie_salt
,
"action_dispatch.cookies_serializer"
=>
config
.
action_dispatch
.
cookies_serializer
"action_dispatch.cookies_digest"
=>
config
.
action_dispatch
.
cookies_digest
})
end
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录