httpclient 2.8.3 → 2.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/hexdump.rb +12 -12
- data/lib/httpclient/http.rb +8 -8
- data/lib/httpclient/jruby_ssl_socket.rb +14 -8
- data/lib/httpclient/session.rb +2 -2
- data/lib/httpclient/ssl_config.rb +30 -21
- data/lib/httpclient/util.rb +1 -1
- data/lib/httpclient/version.rb +1 -1
- data/lib/httpclient.rb +5 -1
- data/lib/jsonclient.rb +8 -5
- data/sample/auth.rb +1 -1
- data/sample/generate_test_keys.rb +99 -0
- data/test/ca-chain.pem +32 -36
- data/test/ca.cert +16 -19
- data/test/ca.key +27 -0
- data/test/ca.srl +1 -0
- data/test/client-pass.key +30 -18
- data/test/client.cert +17 -16
- data/test/client.key +25 -13
- data/test/fixtures/verify.alt.cert +20 -0
- data/test/fixtures/verify.foo.cert +20 -0
- data/test/fixtures/verify.key +27 -0
- data/test/fixtures/verify.localhost.cert +20 -0
- data/test/helper.rb +5 -7
- data/test/server.cert +16 -15
- data/test/server.key +25 -13
- data/test/subca.cert +16 -17
- data/test/subca.key +27 -0
- data/test/subca.srl +1 -0
- data/test/test_auth.rb +21 -17
- data/test/test_hexdump.rb +1 -2
- data/test/test_http-access2.rb +31 -23
- data/test/test_httpclient.rb +57 -58
- data/test/test_jsonclient.rb +18 -0
- data/test/test_ssl.rb +52 -89
- metadata +31 -9
data/test/client-pass.key
CHANGED
@@ -1,18 +1,30 @@
|
|
1
|
-
-----BEGIN
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
1
|
+
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
2
|
+
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
|
30
|
+
-----END ENCRYPTED PRIVATE KEY-----
|
data/test/client.cert
CHANGED
@@ -1,19 +1,20 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
2
|
+
MIIDQDCCAiigAwIBAgIBAjANBgkqhkiG9w0BAQsFADA8MQswCQYDVQQGEwJKUDES
|
3
3
|
MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxCzAJBgNVBAMMAkNBMB4X
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
4
|
+
DTI1MDIxMjA4NDIzMVoXDTM0MDIxMDA4NDIzMVowQzELMAkGA1UEBhMCSlAxEjAQ
|
5
|
+
BgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMRIwEAYDVQQDDAlsb2NhbGhv
|
6
|
+
c3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEFJDGjOy5HGywyT5Z
|
7
|
+
Pp0G0RQOVWqo/tibh8oDnlFeYA0/ZhITndLZBA5iOwjzVhLYOMiE5HJmiC/qPTmZ
|
8
|
+
0wAmAejD6uNqjJeFW5bkTNnNAYxu9lHSJcT2X4LhTO4gvL2+B0PZ39a3JIsODSJa
|
9
|
+
TDdFo0hMI/sTtKHcyzJehEBFWswM3X2yzi0sTj0uTEtrGc4U8LsvgQdwoZ1KvtiL
|
10
|
+
Z9N8z/geuEzOaZnNbS+rdbuIQGeSZEMmIfT1SkLLOnPTEioLMwT+ECwCjRmOsU4B
|
11
|
+
3J0dZmPMQDfGEX3FL5H2go39qtB0KJZCcP7WBLeJMnR2p3VAgMpj0tzaABlRTCgw
|
12
|
+
VwmbAgMBAAGjRjBEMB0GA1UdDgQWBBQltYvx3ODdhLGh6NSHUFlABrhNfjAOBgNV
|
13
|
+
HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQAD
|
14
|
+
ggEBAHKO1hkNOirG1y0C9tg/nnMEmMUmQCX86JAW+kL++p6PjyLnANMsy0xd15rN
|
15
|
+
N4gm5/FeOfEZy5OA68Srs2KV3jLRqTyjzC4Q9NJR+d3rpgmC50hnvYNfpz/KcW1r
|
16
|
+
zpsC8oGHoSZzVyohjAX7de6p7LtNdjSJFQSKS4sb6W28+naSo/ko1wOGhT8USSQd
|
17
|
+
WxDFcCakJW+ro1K0Owiyv1oWhCrDrx74Vr2uVOSx+ThQr66CzsSPcMDGXumFsAA6
|
18
|
+
y+xzIjPoayPvvGsXs7q0Yp/1ydUCY7usx8tuFSpI7iFZa4OB53hvTKKJMhWDuUUu
|
19
|
+
vyYAB8cvu3+4p1t1noP7QnbAxu4=
|
19
20
|
-----END CERTIFICATE-----
|
data/test/client.key
CHANGED
@@ -1,15 +1,27 @@
|
|
1
1
|
-----BEGIN RSA PRIVATE KEY-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
2
|
+
MIIEowIBAAKCAQEAxBSQxozsuRxssMk+WT6dBtEUDlVqqP7Ym4fKA55RXmANP2YS
|
3
|
+
E53S2QQOYjsI81YS2DjIhORyZogv6j05mdMAJgHow+rjaoyXhVuW5EzZzQGMbvZR
|
4
|
+
0iXE9l+C4UzuILy9vgdD2d/WtySLDg0iWkw3RaNITCP7E7Sh3MsyXoRARVrMDN19
|
5
|
+
ss4tLE49LkxLaxnOFPC7L4EHcKGdSr7Yi2fTfM/4HrhMzmmZzW0vq3W7iEBnkmRD
|
6
|
+
JiH09UpCyzpz0xIqCzME/hAsAo0ZjrFOAdydHWZjzEA3xhF9xS+R9oKN/arQdCiW
|
7
|
+
QnD+1gS3iTJ0dqd1QIDKY9Lc2gAZUUwoMFcJmwIDAQABAoIBAAFI9zft5YFDD+1K
|
8
|
+
rFduYx4P0bdUVPodjXLbfXXvnC3nqD6Rny20u5SDg8qeA22A02fKW3oPezZzzwiU
|
9
|
+
dSOub9JP8eQSzoG8wSN1GbSOUmEXEQILKDcd20AYGSX72JWrVvz/VDEB2AjkOusR
|
10
|
+
J/f6huQ0cT1agQM8jFEDneVjrX4m2r1Phf3W1R+klZ+17vnxE6MaF5TVp6/yaNRT
|
11
|
+
+2KUZ8ShwOgWYMa1Bo2+q5f1DFr1j7zSKHwBYuylB03/metZc4zov7pFNbFdeCkP
|
12
|
+
njxrzxQ3H6+3+vzVjvpG+lDUNi0T/m1YBxSoNf5YpZyvRMtFEbfbp/Lllm5bescN
|
13
|
+
j38uArkCgYEA7iHnfrWFaaRrS7E7BPsQJVZ2QZjQxVi5Sb4Ugvdi95wwKeJGE7Al
|
14
|
+
168Rq/YsH++2YNT1FNoqEZX25hqeiuz1Cs8ZHUSQjr1U0a9l/KFFY2IMfSWLlww/
|
15
|
+
cDDpFxFjczMDYDy9RwnmmUBSH2UtfnQ1OvP0cCYXN4O/0tQlzQUzzyMCgYEA0srq
|
16
|
+
fbruMAZr37q5P1wJ6QKWrXzq9IwT+ILxbyvWKQruKYZ711EL33Yj4YI9zHeCKRUd
|
17
|
+
V1N+7voGzQcXVuXkjscZOkPRS0Ufh6FwGG6SKLrurAjz+7uUxdqig1rSzuvuXT1o
|
18
|
+
E4GuEc6JMbjNirL0xJ/FY78NZ/o3QRrmQIBd/ykCgYEA6gBHCyw0vWrkRK0T4gEU
|
19
|
+
DJy5+BvCiyp0aRJv9YJDri285muDkTU2+or+QozVL0zPWrfpXWREkqNayyK9SKcw
|
20
|
+
5D4935TQuHM0Nhi1j1qqZM6klxWd5gATFpv5cMGViE5Isvj8xiHkiBO8nz09R1XK
|
21
|
+
OPQg71N+3P6KMRJnUuAZ2SECgYBq4XSQl83aEAd2g6kWVUa5HRTllqdTpAskQNDG
|
22
|
+
e8W1PdOQvp3giTmp7q820uEe4aHfztL3ymBcL+5u2x+ccii3tIA4KNbggYYBMXwz
|
23
|
+
By2Y9V+7XzbG90/yGm+4hr7JKJvOLyqsaV6nrL+ntHqTzzWI1TIy51aW2CpYGpmR
|
24
|
+
LwV6MQKBgCQVfuU641+f8V0FMYYVvkahBOv8Lp8KVAlUCkrsx4rwZZXfROo6dl4h
|
25
|
+
4UtA5IzhZwJuwNxwgz6AdE56kj9qJIsKxxoJ9OEOgTTySvBtSSscaxQWWmRT44uq
|
26
|
+
2AhB59nD/MKZBZw3AoTJtdqey/aHe4RZ0/6k4jVmXknpvMC1TzFF
|
15
27
|
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,20 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDOzCCAiOgAwIBAgIBAjANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQGEwJKUDES
|
3
|
+
MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxDDAKBgNVBAMMA2FsdDAe
|
4
|
+
Fw0yNTAyMTIwODQyMzFaFw0zNDAyMTAwODQyMzFaMD0xCzAJBgNVBAYTAkpQMRIw
|
5
|
+
EAYDVQQKDAlKSU4uR1IuSlAxDDAKBgNVBAsMA1JSUjEMMAoGA1UEAwwDYWx0MIIB
|
6
|
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+KwMPGm5ZHV2fEUVpTMQB87E
|
7
|
+
YtSiNsS4f73R8zVrE6WGHrWNFfVUb51GRvBSscc8u1oT4yUPCBb4M8iVMeNmxtEW
|
8
|
+
7CDXvwL/okX156KaX1KGX5r9IR3It84Xn7d+b6lhzIwpRqYVspl6QJ9wPujh+8zP
|
9
|
+
ZmZynAqLzYBBFB6/TY2iISZW39s/ECxMvffcAd8d8XLqACt5qhx9KAmKPrAkgcID
|
10
|
+
8xigaua18tc5pYvI7BoLP3oD4bQy9EGFQ69lW7MOehWuNzxh23SOBjcl8IOm+pUK
|
11
|
+
ynyYmkvEsfdZ4MkWTUkE1Amemryz4brMaHBcM75IQVpjl3k99iMwywwIFZxnUwID
|
12
|
+
AQABo0YwRDAdBgNVHQ4EFgQU800KdFhu+/IYKvdJGrLGYT0m2gowDgYDVR0PAQH/
|
13
|
+
BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4IBAQCz
|
14
|
+
0/30ND+yKIaO7hCzOBFw9jiNHYc5RZZLExJc2VoqdRm6N6UmalutjN/NoAA5LaIC
|
15
|
+
UZlq7qrIgiz4FZzcjMdrx3BEZyCF9lnAQ8hrfZfoKsDeYJnqb0sJyXkJnthjhLqQ
|
16
|
+
XGcKJ5W8ZfrXQuLCJwbEJcCAMctPQda4y7vehEGkliuDQnuL8itwapIlSAWbY9cq
|
17
|
+
j1TBWCUX6FoLtJKcxJVVoMblCswfddMACeFhdwNenkFNV96MApZtvTHgMIPS6PxT
|
18
|
+
JdxRxiFXPrm+Qq1bZDCP7RArhAV3LG3/mEBwP1+S5XJHuSAHEpBKkdyadVQg8hG8
|
19
|
+
7X6J4IwDlHEGONz2F863
|
20
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,20 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDOzCCAiOgAwIBAgIBAjANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQGEwJKUDES
|
3
|
+
MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxDDAKBgNVBAMMA2ZvbzAe
|
4
|
+
Fw0yNTAyMTIwODQyMzFaFw0zNDAyMTAwODQyMzFaMD0xCzAJBgNVBAYTAkpQMRIw
|
5
|
+
EAYDVQQKDAlKSU4uR1IuSlAxDDAKBgNVBAsMA1JSUjEMMAoGA1UEAwwDZm9vMIIB
|
6
|
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+KwMPGm5ZHV2fEUVpTMQB87E
|
7
|
+
YtSiNsS4f73R8zVrE6WGHrWNFfVUb51GRvBSscc8u1oT4yUPCBb4M8iVMeNmxtEW
|
8
|
+
7CDXvwL/okX156KaX1KGX5r9IR3It84Xn7d+b6lhzIwpRqYVspl6QJ9wPujh+8zP
|
9
|
+
ZmZynAqLzYBBFB6/TY2iISZW39s/ECxMvffcAd8d8XLqACt5qhx9KAmKPrAkgcID
|
10
|
+
8xigaua18tc5pYvI7BoLP3oD4bQy9EGFQ69lW7MOehWuNzxh23SOBjcl8IOm+pUK
|
11
|
+
ynyYmkvEsfdZ4MkWTUkE1Amemryz4brMaHBcM75IQVpjl3k99iMwywwIFZxnUwID
|
12
|
+
AQABo0YwRDAdBgNVHQ4EFgQU800KdFhu+/IYKvdJGrLGYT0m2gowDgYDVR0PAQH/
|
13
|
+
BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4IBAQB8
|
14
|
+
5ajqPOVWoOuXfjAlXR7FWPrXRjromnZlqG5mzHjBuamPvgPbcF8pBNs457i1YQyg
|
15
|
+
/55UpRkWj4whq5eZNFamCb4vhPh7+mSVARvbEm4TREA/oGPE28NUH00W6Shim7GN
|
16
|
+
Jx71ZQtC3DUxAhyd/JALSFnbfzbMpgsCZh+HdbptZqnWss76K98rIh6RIKXfIYjg
|
17
|
+
6APuNC6R9vcvQ6NbocwxxcphZuHJJBC5kpHCl8lmseifeBU8/SZs98kpYIiVcVJQ
|
18
|
+
Db5yS5US8dnuZAT6Y8I0bS6/6i6u/rMRtVhE64Geo5wCyiOadC5CwUqVE6Ew/cjc
|
19
|
+
pfZkpsPSMys3OMOOX32A
|
20
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEogIBAAKCAQEA+KwMPGm5ZHV2fEUVpTMQB87EYtSiNsS4f73R8zVrE6WGHrWN
|
3
|
+
FfVUb51GRvBSscc8u1oT4yUPCBb4M8iVMeNmxtEW7CDXvwL/okX156KaX1KGX5r9
|
4
|
+
IR3It84Xn7d+b6lhzIwpRqYVspl6QJ9wPujh+8zPZmZynAqLzYBBFB6/TY2iISZW
|
5
|
+
39s/ECxMvffcAd8d8XLqACt5qhx9KAmKPrAkgcID8xigaua18tc5pYvI7BoLP3oD
|
6
|
+
4bQy9EGFQ69lW7MOehWuNzxh23SOBjcl8IOm+pUKynyYmkvEsfdZ4MkWTUkE1Ame
|
7
|
+
mryz4brMaHBcM75IQVpjl3k99iMwywwIFZxnUwIDAQABAoIBABU4VUj4eqYMcgJz
|
8
|
+
wL+apmUMK20FmRwUWGwqLhbTeaIxD0tikboMd9qYcK1QB7Z8+n1AWA8bk/dMQnzk
|
9
|
+
wnqB3bzcjdizisWVg2v9DVlpYkP9HlNdPfmL+ZtZvmFWPrdXnG1gjoslVBesCicm
|
10
|
+
k+UCaXpbxV0HJAOV0M1GAwetAgUjhGD+NGBzenYBODoHwKBud07n1Dmm8Wbn9Jgt
|
11
|
+
+IdX6W+ckieza15EUl26wg/WeFG/8UQHgwSIhlbF6NTF3dV45cOvz+a+hy9upUd9
|
12
|
+
BWvd3YpZ3WJIpkW7nTYX33Ug6/gR/X8Z3lZHxsAIkXfI89rBOGR5hqRLvxrANoA7
|
13
|
+
u/8W8s0CgYEA/TP5SxouAWPVqBHutfgD58wSPOGCmZKv/0c3FfjWBlUmfm4pc2bM
|
14
|
+
DZBHw6i5BUMsjDe4Rm77oc3689BHtQAulX6JYDhpoRKG+SVH3DVYeo7PlbIMvazX
|
15
|
+
Jorxj01d+M3coPE0f0gskomF9GamOElVcK/LW0uUb9Lub/3m637jSRcCgYEA+2tC
|
16
|
+
0XhG3inHN7zQPgoUt7JiEQDCsLh94uvxTCLb+1xfv9MvKr3aUGbnRJ0+DhqTl5zz
|
17
|
+
G1rNIEayQB9CrKg0MbqigHXdrHw3RUTNpadVri9UOIExXnI7m1nC0b1auRy7q6KX
|
18
|
+
t5xwiy+56dIGw4C11HJpg5QKjUAwvHpfNpjsQSUCgYAi5S7OMuV0O5YOe6oyWePv
|
19
|
+
5if9S/b7w0OOIvpshMa6SLHtarE7vkcQ93lsdaxKFV/mUyeKTXFQc1rKj0HSqBvD
|
20
|
+
bpTwNdYY5LzFSWYF6zQub9AcCVXILjHYlf2Eil0RFQ37AEMD56Z864cSj7MIvtKP
|
21
|
+
nSqhgmEKqD9EH/HbMrmQMQKBgHJAng6+z8WpyqRjo2ZuAlgwMixz4gWY8WwruG3W
|
22
|
+
8Yzav5BWkfqkaA9dk/80TbzvCt89LaTisJDYT6ygCBaaIY3vuGUUKvZ1RFCwIZwD
|
23
|
+
3QXY8Db1TtASrU+9jLDvkcjJa+dlbfi8mNBHkf7VuMkjNn4iuBxZLCpgX0Vnftk6
|
24
|
+
yTIZAoGAOH3iesJ7AxDj0Slr6sGNuLYroS2+5/+yPnEGbsMj43mP37wAZwuXhmTn
|
25
|
+
XLJTzP16JDmSEZ/gJXPX9b44JOf11SfpsF/mmPat96BgdbA/tpVt/Zn3Ckq0A7FQ
|
26
|
+
t7RvCoNT9weAg4eilGAXbAeLdJOJPusM59nOzjuyEgoaa3Sbdcw=
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,20 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDRzCCAi+gAwIBAgIBAjANBgkqhkiG9w0BAQsFADBDMQswCQYDVQQGEwJKUDES
|
3
|
+
MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxEjAQBgNVBAMMCWxvY2Fs
|
4
|
+
aG9zdDAeFw0yNTAyMTIwODQyMzFaFw0zNDAyMTAwODQyMzFaMEMxCzAJBgNVBAYT
|
5
|
+
AkpQMRIwEAYDVQQKDAlKSU4uR1IuSlAxDDAKBgNVBAsMA1JSUjESMBAGA1UEAwwJ
|
6
|
+
bG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+KwMPGm5
|
7
|
+
ZHV2fEUVpTMQB87EYtSiNsS4f73R8zVrE6WGHrWNFfVUb51GRvBSscc8u1oT4yUP
|
8
|
+
CBb4M8iVMeNmxtEW7CDXvwL/okX156KaX1KGX5r9IR3It84Xn7d+b6lhzIwpRqYV
|
9
|
+
spl6QJ9wPujh+8zPZmZynAqLzYBBFB6/TY2iISZW39s/ECxMvffcAd8d8XLqACt5
|
10
|
+
qhx9KAmKPrAkgcID8xigaua18tc5pYvI7BoLP3oD4bQy9EGFQ69lW7MOehWuNzxh
|
11
|
+
23SOBjcl8IOm+pUKynyYmkvEsfdZ4MkWTUkE1Amemryz4brMaHBcM75IQVpjl3k9
|
12
|
+
9iMwywwIFZxnUwIDAQABo0YwRDAdBgNVHQ4EFgQU800KdFhu+/IYKvdJGrLGYT0m
|
13
|
+
2gowDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3
|
14
|
+
DQEBCwUAA4IBAQAHkvTJ1LkYCRP0h++KygDoFrHlRBtcLbeLHRDj0mNYiofMOq57
|
15
|
+
IEKI8BQYuA3d/7KsJGLu87KB1NPmQVc4NAertJrOSF/KK4ByvVGbDDKFITQk5Hkz
|
16
|
+
wEqeCPYzTqZdGhn9BPd1Yz1WUaGhyXz62VwGcckd6mcT1iU7AAHRr+qEDDvlnJ9L
|
17
|
+
MOpI1GW15bxP7kFJ7J4HdYIxXycJPkisLMWsP+ORtUxQ1dtWd/p/yu9/J4+YY4mB
|
18
|
+
DQxGlVWf596LPQrXGxenaMjEJjSxOUFaZpq6btQvYDhmB2RvksNECaGNJihEKMed
|
19
|
+
Du2jPZjIsDeIJTkEEMObaZ+WB6ZVrsjeV08p
|
20
|
+
-----END CERTIFICATE-----
|
data/test/helper.rb
CHANGED
@@ -1,11 +1,4 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
begin
|
3
|
-
require 'simplecov'
|
4
|
-
require 'simplecov-rcov'
|
5
|
-
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
|
6
|
-
SimpleCov.start
|
7
|
-
rescue LoadError
|
8
|
-
end
|
9
2
|
require 'test/unit'
|
10
3
|
|
11
4
|
require 'httpclient'
|
@@ -57,6 +50,11 @@ module Helper
|
|
57
50
|
|
58
51
|
def setup_client
|
59
52
|
@client = HTTPClient.new
|
53
|
+
# Set more reasonable timeouts to make debug easier
|
54
|
+
@client.connect_timeout = 3
|
55
|
+
@client.send_timeout = 3
|
56
|
+
@client.receive_timeout = 3
|
57
|
+
@client
|
60
58
|
end
|
61
59
|
|
62
60
|
def escape_noproxy
|
data/test/server.cert
CHANGED
@@ -1,19 +1,20 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
2
|
+
MIIDQzCCAiugAwIBAgIBAjANBgkqhkiG9w0BAQsFADA/MQswCQYDVQQGEwJKUDES
|
3
3
|
MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxDjAMBgNVBAMMBVN1YkNB
|
4
|
-
|
4
|
+
MB4XDTI1MDIxMjA4NDIzMVoXDTM0MDIxMDA4NDIzMVowQzELMAkGA1UEBhMCSlAx
|
5
5
|
EjAQBgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMRIwEAYDVQQDDAlsb2Nh
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
6
|
+
bGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4SI2h/EryUcj5
|
7
|
+
yaPn4pOgRSv7VRwSOJX+6bBVmIuGgeSaqZXd9MpnewBhY9g1doOE3PfIVnnZNrFB
|
8
|
+
FHyJBYD7h6p35g8xyNJQ0HDJNd+xOw+LISoyNmgclGnjbtWzdRlzqnBAOjI7BxOs
|
9
|
+
MbX0ehkKMcl9VgAJczdGRpQewtDN8JLh8FivHH10txsAch78g7TK4OSfWLSJQg4b
|
10
|
+
dYIFEGKATKGutBCXHsDpuM1c0CFXU0qiH0FwnjKLJyyUEZg0WgTSn9PftR1PhVZ3
|
11
|
+
xx07FO+Cgku2QLeClKrJH6/9YsFa3W+AZmujt6Hp77LkBSVWDyYoBHDc+HPcIm0Z
|
12
|
+
AKg/YuH3AgMBAAGjRjBEMB0GA1UdDgQWBBTZgo2CimpIxBjlzlRwEKfA/3I3GDAO
|
13
|
+
BgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEL
|
14
|
+
BQADggEBAJcQ7A7a3XuMbc+eeyAhcoqlWyMpq8ktbVlc4jG7k5dITnXfDYxtMtre
|
15
|
+
byTezZRc0EWNEVDxmUkTskDfBjl6r3NgZk7lNIONaoMh3KgcyUa4BIjb3t5ifeKj
|
16
|
+
v+PbXD3G6zOpEfV5TSjnAXL/FVtSbsuLsLfu4TQLpZxEW2yRIW0ftOAsVCa0Ewo5
|
17
|
+
B78aN2aDrnSgVaTSZ3O+yto/3aVkQFVinCj7uLzoUZVcIQ0maCXTnxYORbAEQlu6
|
18
|
+
nt0faBMid8RX++niVh41WxmCkpnx6CnLScGdHsgrCho8C4gnm2hxAiKoLBaM88L5
|
19
|
+
VWt9rVhXmSOX4xeYUgVFfH14y2QMOpc=
|
19
20
|
-----END CERTIFICATE-----
|
data/test/server.key
CHANGED
@@ -1,15 +1,27 @@
|
|
1
1
|
-----BEGIN RSA PRIVATE KEY-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
2
|
+
MIIEoAIBAAKCAQEAuEiNofxK8lHI+cmj5+KToEUr+1UcEjiV/umwVZiLhoHkmqmV
|
3
|
+
3fTKZ3sAYWPYNXaDhNz3yFZ52TaxQRR8iQWA+4eqd+YPMcjSUNBwyTXfsTsPiyEq
|
4
|
+
MjZoHJRp427Vs3UZc6pwQDoyOwcTrDG19HoZCjHJfVYACXM3RkaUHsLQzfCS4fBY
|
5
|
+
rxx9dLcbAHIe/IO0yuDkn1i0iUIOG3WCBRBigEyhrrQQlx7A6bjNXNAhV1NKoh9B
|
6
|
+
cJ4yiycslBGYNFoE0p/T37UdT4VWd8cdOxTvgoJLtkC3gpSqyR+v/WLBWt1vgGZr
|
7
|
+
o7eh6e+y5AUlVg8mKARw3Phz3CJtGQCoP2Lh9wIDAQABAoIBAACUABdZNBL88Eur
|
8
|
+
g99SXD9m3o1A5kzYVWaIIFl9/p7cmw799GgB2jC0HhT87zMbvN99CGBeHq7wkPww
|
9
|
+
4dy8LuKbH/Nh8WJCmWy14Rfm512Mkq8cQSAIzULQF5TzE0PA3LEtzU3zE/1DatH7
|
10
|
+
eSRCZ2aBlkdvLm8/jhWjJ9iadXU8u2i6Cyvy/9S6KXcelopsRgpsA4Gn2t/q6FbS
|
11
|
+
IX9U1WzZz2/nOinCz4E7/Q/3zPxy4m2VRcdqWAMWtje+hFL/gu+IikkjMNlpxv6z
|
12
|
+
csZn1wyU36+FEW5UW9/m/NfyVQ7Uz6jI/zTYWFI0PIKpIlUe+brFCGA4qzIXoZt1
|
13
|
+
nwOcaIECgYEA5DSXZ/6WycMRsIOjZFzN5u3XBYts1Kg1Vm8AxaRwA0IYuftBwgB7
|
14
|
+
GxVY1IpGCaKrzLsYd2YI+xXxbM6FhAPu0AEyljtucp0KXlNMl325eHPvO+/TkTxn
|
15
|
+
PXwn8WJ1W3Hfe5goxPOFB6oG2Rwdsci5Q38Vtk/KPt6xKu71v7QMQecCgYEAzrp6
|
16
|
+
7zRLNIhRAUvuh49BrZ62yRO4aaATXtwunKxqot+HOD6SmQ/ywaosTYu8s8i8z/9O
|
17
|
+
TqnOtS0WPTYwWgXKas0ZS32U4LspxrzUU541yzOGxpGwsnq8HUlnYE5B0AqGTo7F
|
18
|
+
IeeKzN2YxT1juXXK3X+kFp/NUG53m/M4o0ZUfXECf1PK+80zripndhdaPqSbbv9c
|
19
|
+
VZezmkJ7gRo7qAzqVDbeDjY8C+kwRAOt0vA31X+0O2DxUgqFbMbFR+Cr9FqFFytJ
|
20
|
+
RUnkiKmNAEGiVH1LrM6Nw0o+xXCOvVnWPNRlUrJBHc5EELRAtpgZ1mnh6QVerqga
|
21
|
+
Ad7vbVOocWVSWOoLMnUCgYAcJLL7wajDXBN7E7VDazNLyaGkujSO3KYGcf8+gRJ7
|
22
|
+
Xebwt0QJ5mvsBZjGbdGgwCFER8OHXgKwE5VFfA0VFFi8NXPOHSiZd6F2VtqpD47P
|
23
|
+
PRKKEed2RNM7QXT7XWwEQIqMQ09/ECCLR1e28maTJwAZK3lRQywWWRObfX8mazqx
|
24
|
+
YQKBgELCw5RGDgff66mkq0nErDyQPn0aqjXcBSWH022HJgH0x2+nJcPeUWoottA0
|
25
|
+
FMPuY+Hf4WmQtuFW6d4h9ZgGfOl1R4b6coGvmndbAIow8e7Vnq7f/fBcGe4aCg8A
|
26
|
+
UjaMsQcAaDATYywB83203IzoeLU/W8Sk+zN3I+DWbE+iMyAh
|
15
27
|
-----END RSA PRIVATE KEY-----
|
data/test/subca.cert
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
2
|
+
MIIDODCCAiCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADA8MQswCQYDVQQGEwJKUDES
|
3
3
|
MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxCzAJBgNVBAMMAkNBMB4X
|
4
|
-
|
4
|
+
DTI1MDIxMjA4NDIzMVoXDTM0MDIxMDA4NDIzMVowPzELMAkGA1UEBhMCSlAxEjAQ
|
5
5
|
BgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMQ4wDAYDVQQDDAVTdWJDQTCC
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
uY/bPeOBYiVsOYVe
|
6
|
+
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALmNNo+I5XkgbBTJbvKgJxq5
|
7
|
+
oiJMEInr64KiCJOsA5Z35oE25a8OIWeRqxKW+jufonF96V/swWNM11gaUcTjYT72
|
8
|
+
g66ux42vWNN8uFxhhqhYRyiMjfSVA3HUZFaqmU9WP7H3YQGINJZ83BPOYoinZXEP
|
9
|
+
TrQVa8wIKT9Xc5gOq7+SqUuqLvs4jIkgrB744Fo0soCh5WT3V3Op/5K8MA0+N3P4
|
10
|
+
VrFm/SP8k7deT3EtT/aOHgkaKLo3hQ8zkDegVFEKfmWyoA/MwTSciioX/ePm7jjb
|
11
|
+
z4ffl5/ifg3Hgmuk6m85ZaGULJHCkciEgP8scZUNHkRvDK6ZBluwrUpepv5ARUsC
|
12
|
+
AwEAAaNCMEAwHQYDVR0OBBYEFErc4GxPO8mVXXhTgje5yLxWLh0bMA4GA1UdDwEB
|
13
|
+
/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCAcHOU
|
14
|
+
nvhuV6Vuh4gNZjeLJWapJBVYZdkAOd4EhiWtYpq0wWSqlgE+VzIXV9gccYaulVmf
|
15
|
+
NJoLuenzML764U8kOBk8mOWg+U5AYOXwRgsU+e56jgWG6/ijLSf7YfaVkVZNPe36
|
16
|
+
59+0KLag6AkkeDOdXbkfageukg6LhTk4Zg1piRMP3JSYbXVzTlgdm8hLKgPOJitQ
|
17
|
+
FdjMytGYCU5oGHrRrwhlar0xlIvynzVL5wlkuJ19hKUw4UYjoNFy3ZJtbtdqSaF2
|
18
|
+
ZGX/8KNDYFoHAyvGZCYTr22T1ywWeMFQ+4beiYEv2lifVcYIoI0bEA8Pe9i3Egiv
|
19
|
+
9u18A/unCSVLPua1
|
21
20
|
-----END CERTIFICATE-----
|
data/test/subca.key
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEowIBAAKCAQEAuY02j4jleSBsFMlu8qAnGrmiIkwQievrgqIIk6wDlnfmgTbl
|
3
|
+
rw4hZ5GrEpb6O5+icX3pX+zBY0zXWBpRxONhPvaDrq7Hja9Y03y4XGGGqFhHKIyN
|
4
|
+
9JUDcdRkVqqZT1Y/sfdhAYg0lnzcE85iiKdlcQ9OtBVrzAgpP1dzmA6rv5KpS6ou
|
5
|
+
+ziMiSCsHvjgWjSygKHlZPdXc6n/krwwDT43c/hWsWb9I/yTt15PcS1P9o4eCRoo
|
6
|
+
ujeFDzOQN6BUUQp+ZbKgD8zBNJyKKhf94+buONvPh9+Xn+J+DceCa6TqbzlloZQs
|
7
|
+
kcKRyISA/yxxlQ0eRG8MrpkGW7CtSl6m/kBFSwIDAQABAoIBAFXknjCkhOFk1lNr
|
8
|
+
CZ5r754p93lb774AxWUT39eIJaMGPuBqyrkV1/XLEz+IPy7Rj09tI1ah0MXIYNkq
|
9
|
+
WdbEERSl5cA7rSmT1ZEU53zwMncEYnBNXDsvrcgIMyiBUXXN7a9S3gdpBzrwcqoC
|
10
|
+
fE9Y+hbzqJGpZtysnHdzYpGtnOiRT92atZudOR6qXKQA28qeuidZ3kNoasKysatD
|
11
|
+
ohhIQ8qErEQ6umGAvdjG/hf19j9c5ZuwQDJpfsczlpTHF3fgKiNJoQAb5GExhGW0
|
12
|
+
E2QaQzH1z60Cb+4rP2M6B7cw/2qf6gZxWXerQoVrcrd69osB7OjmWw5Ue7JlNGEO
|
13
|
+
s0SeLl0CgYEA6f79uANVeEFSzNrZxuR7zRQfKNiZNa162rTiGpSXfTRaGJI9x2uF
|
14
|
+
spt62KkYaTKBq2jK6V83rjK28+pA+Q9D+YxPd+vShNCcd8AtOIElFSWwq8If1c03
|
15
|
+
2LmJg7JO8PYPLJKT41ANC75nv/qoRap5idw/9z4QrVuO/y3hlFckDycCgYEAywAD
|
16
|
+
r7wj7jp7/M5M4SehACOh2ztzSjBcWG4INq1XguyIsEb5MLB3y9GV5jgwhulJO+kw
|
17
|
+
Yo8hVGf5g21NS9TxvHEXNXERQYZQ34HZPmHrp0t8gYDmMLlFDAdiyojpB5TObKoz
|
18
|
+
hUqhegAnv4Do0xkhpBHzHMZzu3+v8Nkv+ylrrz0CgYEA0A90SEdmmvvyhMZf9/K3
|
19
|
+
hf1LS4V0jX8IiyllFl9jZ+fB6LE4D3aytcJ78+Q/GWLYW7JdIi8REmpztORpC0wg
|
20
|
+
k+bHzoi4cnIPfoc5blGeyHPv6Hk+11uXObSX6qsEeEtB6M8YgnlucC/IjrJxJyjS
|
21
|
+
0tstYUkliQ+tUYbZWo41OOcCgYA/duSwJ0iwbPZgZfrhFWufSISMrrxvgEkOmG/W
|
22
|
+
8ECAvQRK4BV95F2/iemsTPrW4s4zfcbTuV25LrxyG1TkFVHyEQUpfwzfCGf2SHkr
|
23
|
+
qJ9s8QuezTaqGvH8Pb7kBQOdjCcxD9EFpfxv0OacV2fyv1OmILp5z41VHClcSfpX
|
24
|
+
Mm7pHQKBgAFdYkZJBSg5xUJY18Fl2E6qRS8+LbOf85CHDrVQ5SrbuMLfgcDtHxJS
|
25
|
+
1Hcsek+VpQENeYnAtE2QObTWPjWiU1AWHtH24bFLNJgWfzd4uwz/sduOX+mGqUZh
|
26
|
+
zXTqd1n4UZgEmAuFECfY3R1aUG0bZx64k36g7QvW9WGRr+naKNqp
|
27
|
+
-----END RSA PRIVATE KEY-----
|
data/test/subca.srl
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1A196228872FBD912F1AED26DF7847E9BE54F0EA
|
data/test/test_auth.rb
CHANGED
@@ -127,6 +127,10 @@ class TestAuth < Test::Unit::TestCase
|
|
127
127
|
def data_size
|
128
128
|
@active && @value ? @value.size : 0
|
129
129
|
end
|
130
|
+
|
131
|
+
def value
|
132
|
+
@value ||= ""
|
133
|
+
end
|
130
134
|
end
|
131
135
|
end
|
132
136
|
end
|
@@ -176,7 +180,7 @@ class TestAuth < Test::Unit::TestCase
|
|
176
180
|
c.www_auth.basic_auth.instance_eval { @scheme = "BASIC" }
|
177
181
|
#
|
178
182
|
c.force_basic_auth = true
|
179
|
-
c.debug_dev = str = ''
|
183
|
+
c.debug_dev = str = ''.dup
|
180
184
|
c.set_auth("http://localhost:#{serverport}/", 'admin', 'admin')
|
181
185
|
assert_equal('basic_auth OK', c.get_content("http://localhost:#{serverport}/basic_auth"))
|
182
186
|
assert_equal('Authorization: Basic YWRtaW46YWRtaW4='.upcase, str.split(/\r?\n/)[5].upcase)
|
@@ -230,11 +234,11 @@ class TestAuth < Test::Unit::TestCase
|
|
230
234
|
c.www_auth.basic_auth.instance_eval { @scheme = "BASIC" }
|
231
235
|
c.set_auth("http://localhost:#{serverport}/", 'admin', 'admin')
|
232
236
|
|
233
|
-
|
237
|
+
20.times.map { |idx|
|
234
238
|
Thread.new(idx) { |idx2|
|
235
239
|
Thread.abort_on_exception = true
|
236
240
|
Thread.pass
|
237
|
-
c.get("http://localhost:#{serverport}/basic_auth?#{idx2}")
|
241
|
+
assert_equal('basic_auth OK', c.get("http://localhost:#{serverport}/basic_auth?#{idx2}").body)
|
238
242
|
}
|
239
243
|
}.map { |t|
|
240
244
|
t.join
|
@@ -249,7 +253,7 @@ class TestAuth < Test::Unit::TestCase
|
|
249
253
|
c.set_auth("http://localhost:#{serverport}/", 'admin', 'admin')
|
250
254
|
assert_equal('basic_auth OK', c.get_content("http://localhost:#{serverport}/basic_auth/"))
|
251
255
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
252
|
-
c.debug_dev = str = ''
|
256
|
+
c.debug_dev = str = ''.dup
|
253
257
|
c.get_content("http://localhost:#{serverport}/basic_auth/sub/dir/")
|
254
258
|
assert_match(/Authorization: Basic YWRtaW46YWRtaW4=/, str)
|
255
259
|
end
|
@@ -265,7 +269,7 @@ class TestAuth < Test::Unit::TestCase
|
|
265
269
|
c.set_auth("http://localhost:#{serverport}/", 'admin', 'admin')
|
266
270
|
assert_equal('digest_auth OK', c.get_content("http://localhost:#{serverport}/digest_auth/"))
|
267
271
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
268
|
-
c.debug_dev = str = ''
|
272
|
+
c.debug_dev = str = ''.dup
|
269
273
|
c.get_content("http://localhost:#{serverport}/digest_auth/sub/dir/")
|
270
274
|
assert_match(/Authorization: Digest/, str)
|
271
275
|
end
|
@@ -311,7 +315,7 @@ class TestAuth < Test::Unit::TestCase
|
|
311
315
|
c.set_auth('http://example.com/', 'admin', 'admin')
|
312
316
|
c.test_loopback_http_response << "HTTP/1.0 401 Unauthorized\nWWW-Authenticate: Basic realm=\"foo\"\nWWW-Authenticate: Digest realm=\"foo\", nonce=\"nonce\", stale=false\nContent-Length: 2\n\nNG"
|
313
317
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
314
|
-
c.debug_dev = str = ''
|
318
|
+
c.debug_dev = str = ''.dup
|
315
319
|
c.get_content('http://example.com/')
|
316
320
|
assert_match(/^Authorization: Digest/, str)
|
317
321
|
end
|
@@ -327,7 +331,7 @@ class TestAuth < Test::Unit::TestCase
|
|
327
331
|
c.set_proxy_auth('admin', 'admin')
|
328
332
|
c.test_loopback_http_response << "HTTP/1.0 407 Unauthorized\nProxy-Authenticate: Basic realm=\"foo\"\nContent-Length: 2\n\nNG"
|
329
333
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
330
|
-
c.debug_dev = str = ''
|
334
|
+
c.debug_dev = str = ''.dup
|
331
335
|
c.get_content('http://example.com/')
|
332
336
|
assert_match(/Proxy-Authorization: Basic YWRtaW46YWRtaW4=/, str)
|
333
337
|
end
|
@@ -337,7 +341,7 @@ class TestAuth < Test::Unit::TestCase
|
|
337
341
|
c.set_proxy_auth('admin', 'admin')
|
338
342
|
c.force_basic_auth = true
|
339
343
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
340
|
-
c.debug_dev = str = ''
|
344
|
+
c.debug_dev = str = ''.dup
|
341
345
|
c.get_content('http://example.com/')
|
342
346
|
assert_match(/Proxy-Authorization: Basic YWRtaW46YWRtaW4=/, str)
|
343
347
|
end
|
@@ -349,7 +353,7 @@ class TestAuth < Test::Unit::TestCase
|
|
349
353
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
350
354
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
351
355
|
c.get_content('http://www1.example.com/')
|
352
|
-
c.debug_dev = str = ''
|
356
|
+
c.debug_dev = str = ''.dup
|
353
357
|
c.get_content('http://www2.example.com/')
|
354
358
|
assert_match(/Proxy-Authorization: Basic YWRtaW46YWRtaW4=/, str)
|
355
359
|
end
|
@@ -363,7 +367,7 @@ class TestAuth < Test::Unit::TestCase
|
|
363
367
|
ha1 = md5.hexdigest("admin:foo:admin")
|
364
368
|
ha2 = md5.hexdigest("GET:/")
|
365
369
|
response = md5.hexdigest("#{ha1}:nonce:#{ha2}")
|
366
|
-
c.debug_dev = str = ''
|
370
|
+
c.debug_dev = str = ''.dup
|
367
371
|
c.get_content('http://example.com/')
|
368
372
|
assert_match(/Proxy-Authorization: Digest/, str)
|
369
373
|
assert_match(%r"response=\"#{response}\"", str)
|
@@ -394,7 +398,7 @@ class TestAuth < Test::Unit::TestCase
|
|
394
398
|
ha1 = md5.hexdigest("admin:foo:admin")
|
395
399
|
ha2 = md5.hexdigest("GET:/")
|
396
400
|
response = md5.hexdigest("#{ha1}:nonce:#{ha2}")
|
397
|
-
c.debug_dev = str = ''
|
401
|
+
c.debug_dev = str = ''.dup
|
398
402
|
c.get_content('http://example.com/')
|
399
403
|
assert_match(/Proxy-Authorization: Digest/, str)
|
400
404
|
assert_match(%r"response=\"#{response}\"", str)
|
@@ -411,7 +415,7 @@ class TestAuth < Test::Unit::TestCase
|
|
411
415
|
ha2 = md5.hexdigest("GET:/")
|
412
416
|
response = md5.hexdigest("#{ha1}:nonce:#{ha2}")
|
413
417
|
c.get_content('http://www1.example.com/')
|
414
|
-
c.debug_dev = str = ''
|
418
|
+
c.debug_dev = str = ''.dup
|
415
419
|
c.get_content('http://www2.example.com/')
|
416
420
|
assert_match(/Proxy-Authorization: Digest/, str)
|
417
421
|
assert_match(%r"response=\"#{response}\"", str)
|
@@ -433,19 +437,19 @@ class TestAuth < Test::Unit::TestCase
|
|
433
437
|
c.www_auth.oauth.set_config('http://photos.example.net/', config)
|
434
438
|
c.www_auth.oauth.challenge('http://photos.example.net/')
|
435
439
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
436
|
-
c.debug_dev = str = ''
|
440
|
+
c.debug_dev = str = ''.dup
|
437
441
|
c.get_content('http://photos.example.net/photos', [[:file, 'vacation.jpg'], [:size, 'original']])
|
438
442
|
assert(str.index(%q(GET /photos?file=vacation.jpg&size=original)))
|
439
443
|
assert(str.index(%q(Authorization: OAuth realm="http://photos.example.net/", oauth_consumer_key="dpf43f3p2l4k3l03", oauth_nonce="kllo9940pd9333jh", oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1191242096", oauth_token="nnch734d00sl2jdk", oauth_version="1.0")))
|
440
444
|
#
|
441
445
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
442
|
-
c.debug_dev = str = ''
|
446
|
+
c.debug_dev = str = ''.dup
|
443
447
|
c.get_content('http://photos.example.net/photos?file=vacation.jpg&size=original')
|
444
448
|
assert(str.index(%q(GET /photos?file=vacation.jpg&size=original)))
|
445
449
|
assert(str.index(%q(Authorization: OAuth realm="http://photos.example.net/", oauth_consumer_key="dpf43f3p2l4k3l03", oauth_nonce="kllo9940pd9333jh", oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1191242096", oauth_token="nnch734d00sl2jdk", oauth_version="1.0")))
|
446
450
|
#
|
447
451
|
c.test_loopback_http_response << "HTTP/1.0 200 OK\nContent-Length: 2\n\nOK"
|
448
|
-
c.debug_dev = str = ''
|
452
|
+
c.debug_dev = str = ''.dup
|
449
453
|
c.post_content('http://photos.example.net/photos', [[:file, 'vacation.jpg'], [:size, 'original']])
|
450
454
|
assert(str.index(%q(POST /photos)))
|
451
455
|
assert(str.index(%q(Authorization: OAuth realm="http://photos.example.net/", oauth_consumer_key="dpf43f3p2l4k3l03", oauth_nonce="kllo9940pd9333jh", oauth_signature="wPkvxykrw%2BBTdCcGqKr%2B3I%2BPsiM%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1191242096", oauth_token="nnch734d00sl2jdk", oauth_version="1.0")))
|
@@ -475,7 +479,7 @@ class TestAuth < Test::Unit::TestCase
|
|
475
479
|
c.test_loopback_http_response << %Q(HTTP/1.1 401 Unauthorized\r\nWWW-Authenticate: NTLM TlRMTVNTUAACAAAAAAAAACgAAAABAAAAAAAAAAAAAAA=\r\nConnection: Keep-Alive\r\nContent-Length: 0\r\n\r\n)
|
476
480
|
c.test_loopback_http_response << %Q(HTTP/1.0 200 OK\r\nConnection: Keep-Alive\r\nContent-Length: 1\r\n\r\na)
|
477
481
|
c.test_loopback_http_response << %Q(HTTP/1.0 200 OK\r\nConnection: Keep-Alive\r\nContent-Length: 1\r\n\r\nb)
|
478
|
-
c.debug_dev = str = ''
|
482
|
+
c.debug_dev = str = ''.dup
|
479
483
|
c.set_auth('http://www.example.org/', 'admin', 'admin')
|
480
484
|
# Do NTLM negotiation
|
481
485
|
c.get('http://www.example.org/foo')
|
@@ -484,7 +488,7 @@ class TestAuth < Test::Unit::TestCase
|
|
484
488
|
assert_match(%r(Authorization: NTLM), str)
|
485
489
|
assert_not_match(%r(Authorization: Basic), str)
|
486
490
|
# ditto for other resource that is protected with NTLM
|
487
|
-
c.debug_dev = str = ''
|
491
|
+
c.debug_dev = str = ''.dup
|
488
492
|
c.get('http://www.example.org/foo/subdir')
|
489
493
|
assert_not_match(%r(Authorization: NTLM), str)
|
490
494
|
assert_not_match(%r(Authorization: Basic), str)
|
data/test/test_hexdump.rb
CHANGED
@@ -5,8 +5,7 @@ require 'hexdump'
|
|
5
5
|
|
6
6
|
class TestHexDump < Test::Unit::TestCase
|
7
7
|
def test_encode
|
8
|
-
str = "\032l\277\370\2429\216\236\351[{\{\262\350\274\376"
|
9
|
-
str.force_encoding('BINARY') if str.respond_to?(:force_encoding)
|
8
|
+
str = "\032l\277\370\2429\216\236\351[{\{\262\350\274\376".b
|
10
9
|
assert_equal(["00000000 1a6cbff8 a2398e9e e95b7b7b b2e8bcfe .l...9...[{{...."], HexDump.encode(str))
|
11
10
|
end
|
12
11
|
end if defined?(RUBY_ENGINE) && RUBY_ENGINE != "rbx" && RUBY_VERSION >= "1.9.0"
|