forked from TrueCloudLab/neoneo-go
oracle: we only work with https, forget http
This commit is contained in:
parent
a44cd71b9d
commit
29b79db998
2 changed files with 23 additions and 23 deletions
|
@ -133,19 +133,19 @@ func TestOracle(t *testing.T) {
|
||||||
cs := getOracleContractState(bc.contracts.Oracle.Hash, bc.contracts.Std.Hash)
|
cs := getOracleContractState(bc.contracts.Oracle.Hash, bc.contracts.Std.Hash)
|
||||||
require.NoError(t, bc.contracts.Management.PutContractState(bc.dao, cs))
|
require.NoError(t, bc.contracts.Management.PutContractState(bc.dao, cs))
|
||||||
|
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://get.1234", nil, "handle", []byte{}, 10_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://get.1234", nil, "handle", []byte{}, 10_000_000)
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://get.1234", nil, "handle", []byte{}, 10_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://get.1234", nil, "handle", []byte{}, 10_000_000)
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://get.timeout", nil, "handle", []byte{}, 10_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://get.timeout", nil, "handle", []byte{}, 10_000_000)
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://get.notfound", nil, "handle", []byte{}, 10_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://get.notfound", nil, "handle", []byte{}, 10_000_000)
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://get.forbidden", nil, "handle", []byte{}, 10_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://get.forbidden", nil, "handle", []byte{}, 10_000_000)
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://private.url", nil, "handle", []byte{}, 10_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://private.url", nil, "handle", []byte{}, 10_000_000)
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://get.big", nil, "handle", []byte{}, 10_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://get.big", nil, "handle", []byte{}, 10_000_000)
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://get.maxallowed", nil, "handle", []byte{}, 10_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://get.maxallowed", nil, "handle", []byte{}, 10_000_000)
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://get.maxallowed", nil, "handle", []byte{}, 100_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://get.maxallowed", nil, "handle", []byte{}, 100_000_000)
|
||||||
|
|
||||||
flt := "Values[1]"
|
flt := "Values[1]"
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://get.filter", &flt, "handle", []byte{}, 10_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://get.filter", &flt, "handle", []byte{}, 10_000_000)
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://get.filterinv", &flt, "handle", []byte{}, 10_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://get.filterinv", &flt, "handle", []byte{}, 10_000_000)
|
||||||
|
|
||||||
checkResp := func(t *testing.T, id uint64, resp *transaction.OracleResponse) *state.OracleRequest {
|
checkResp := func(t *testing.T, id uint64, resp *transaction.OracleResponse) *state.OracleRequest {
|
||||||
req, err := oracleCtr.GetRequestInternal(bc.dao, id)
|
req, err := oracleCtr.GetRequestInternal(bc.dao, id)
|
||||||
|
@ -279,7 +279,7 @@ func TestOracleFull(t *testing.T) {
|
||||||
t.Cleanup(orc.Shutdown)
|
t.Cleanup(orc.Shutdown)
|
||||||
|
|
||||||
bc.setNodesByRole(t, true, noderoles.Oracle, keys.PublicKeys{acc.PrivateKey().PublicKey()})
|
bc.setNodesByRole(t, true, noderoles.Oracle, keys.PublicKeys{acc.PrivateKey().PublicKey()})
|
||||||
putOracleRequest(t, cs.Hash, bc, "http://get.1234", new(string), "handle", []byte{}, 10_000_000)
|
putOracleRequest(t, cs.Hash, bc, "https://get.1234", new(string), "handle", []byte{}, 10_000_000)
|
||||||
|
|
||||||
require.Eventually(t, func() bool { return mp.Count() == 1 },
|
require.Eventually(t, func() bool { return mp.Count() == 1 },
|
||||||
time.Second*3, time.Millisecond*200)
|
time.Second*3, time.Millisecond*200)
|
||||||
|
@ -341,43 +341,43 @@ func (c *httpClient) Get(url string) (*http.Response, error) {
|
||||||
func newDefaultHTTPClient() oracle.HTTPClient {
|
func newDefaultHTTPClient() oracle.HTTPClient {
|
||||||
return &httpClient{
|
return &httpClient{
|
||||||
responses: map[string]testResponse{
|
responses: map[string]testResponse{
|
||||||
"http://get.1234": {
|
"https://get.1234": {
|
||||||
code: http.StatusOK,
|
code: http.StatusOK,
|
||||||
body: []byte{1, 2, 3, 4},
|
body: []byte{1, 2, 3, 4},
|
||||||
},
|
},
|
||||||
"http://get.4321": {
|
"https://get.4321": {
|
||||||
code: http.StatusOK,
|
code: http.StatusOK,
|
||||||
body: []byte{4, 3, 2, 1},
|
body: []byte{4, 3, 2, 1},
|
||||||
},
|
},
|
||||||
"http://get.timeout": {
|
"https://get.timeout": {
|
||||||
code: http.StatusRequestTimeout,
|
code: http.StatusRequestTimeout,
|
||||||
body: []byte{},
|
body: []byte{},
|
||||||
},
|
},
|
||||||
"http://get.notfound": {
|
"https://get.notfound": {
|
||||||
code: http.StatusNotFound,
|
code: http.StatusNotFound,
|
||||||
body: []byte{},
|
body: []byte{},
|
||||||
},
|
},
|
||||||
"http://get.forbidden": {
|
"https://get.forbidden": {
|
||||||
code: http.StatusForbidden,
|
code: http.StatusForbidden,
|
||||||
body: []byte{},
|
body: []byte{},
|
||||||
},
|
},
|
||||||
"http://private.url": {
|
"https://private.url": {
|
||||||
code: http.StatusOK,
|
code: http.StatusOK,
|
||||||
body: []byte("passwords"),
|
body: []byte("passwords"),
|
||||||
},
|
},
|
||||||
"http://get.big": {
|
"https://get.big": {
|
||||||
code: http.StatusOK,
|
code: http.StatusOK,
|
||||||
body: make([]byte, transaction.MaxOracleResultSize+1),
|
body: make([]byte, transaction.MaxOracleResultSize+1),
|
||||||
},
|
},
|
||||||
"http://get.maxallowed": {
|
"https://get.maxallowed": {
|
||||||
code: http.StatusOK,
|
code: http.StatusOK,
|
||||||
body: make([]byte, transaction.MaxOracleResultSize),
|
body: make([]byte, transaction.MaxOracleResultSize),
|
||||||
},
|
},
|
||||||
"http://get.filter": {
|
"https://get.filter": {
|
||||||
code: http.StatusOK,
|
code: http.StatusOK,
|
||||||
body: []byte(`{"Values":["one", 2, 3],"Another":null}`),
|
body: []byte(`{"Values":["one", 2, 3],"Another":null}`),
|
||||||
},
|
},
|
||||||
"http://get.filterinv": {
|
"https://get.filterinv": {
|
||||||
code: http.StatusOK,
|
code: http.StatusOK,
|
||||||
body: []byte{0xFF},
|
body: []byte{0xFF},
|
||||||
},
|
},
|
||||||
|
|
|
@ -102,7 +102,7 @@ func (o *Oracle) processRequest(priv *keys.PrivateKey, req request) error {
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resp.Code = transaction.Forbidden
|
resp.Code = transaction.Forbidden
|
||||||
} else if u.Scheme == "http" {
|
} else if u.Scheme == "https" {
|
||||||
r, err := o.Client.Get(req.Req.URL)
|
r, err := o.Client.Get(req.Req.URL)
|
||||||
switch {
|
switch {
|
||||||
case err != nil:
|
case err != nil:
|
||||||
|
|
Loading…
Reference in a new issue