Skip to content

Commit 3de34fd

Browse files
committed
refactor: use updated gateway with trusted mode
1 parent 0ec22f4 commit 3de34fd

File tree

5 files changed

+32
-21
lines changed

5 files changed

+32
-21
lines changed

core/corehttp/gateway.go

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,11 @@ import (
2828

2929
func GatewayOption(paths ...string) ServeOption {
3030
return func(n *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) {
31-
cfg, err := n.Repo.Config()
31+
gwConfig, err := getGatewayConfig(n)
3232
if err != nil {
3333
return nil, err
3434
}
3535

36-
headers := make(map[string][]string, len(cfg.Gateway.HTTPHeaders))
37-
for h, v := range cfg.Gateway.HTTPHeaders {
38-
headers[http.CanonicalHeaderKey(h)] = v
39-
}
40-
41-
gateway.AddAccessControlHeaders(headers)
42-
43-
gwConfig := gateway.Config{
44-
Headers: headers,
45-
}
46-
4736
gwAPI, err := newGatewayBackend(n)
4837
if err != nil {
4938
return nil, err
@@ -67,7 +56,7 @@ func GatewayOption(paths ...string) ServeOption {
6756

6857
func HostnameOption() ServeOption {
6958
return func(n *core.IpfsNode, _ net.Listener, mux *http.ServeMux) (*http.ServeMux, error) {
70-
cfg, err := n.Repo.Config()
59+
gwConfig, err := getGatewayConfig(n)
7160
if err != nil {
7261
return nil, err
7362
}
@@ -77,9 +66,8 @@ func HostnameOption() ServeOption {
7766
return nil, err
7867
}
7968

80-
publicGateways := convertPublicGateways(cfg.Gateway.PublicGateways)
8169
childMux := http.NewServeMux()
82-
mux.HandleFunc("/", gateway.WithHostname(childMux, gwAPI, publicGateways, cfg.Gateway.NoDNSLink).ServeHTTP)
70+
mux.HandleFunc("/", gateway.WithHostname(gwConfig, gwAPI, childMux).ServeHTTP)
8371
return childMux, nil
8472
}
8573
}
@@ -214,6 +202,28 @@ var defaultKnownGateways = map[string]*gateway.Specification{
214202
"localhost": subdomainGatewaySpec,
215203
}
216204

205+
func getGatewayConfig(n *core.IpfsNode) (gateway.Config, error) {
206+
cfg, err := n.Repo.Config()
207+
if err != nil {
208+
return gateway.Config{}, err
209+
}
210+
211+
headers := make(map[string][]string, len(cfg.Gateway.HTTPHeaders))
212+
for h, v := range cfg.Gateway.HTTPHeaders {
213+
headers[http.CanonicalHeaderKey(h)] = v
214+
}
215+
gateway.AddAccessControlHeaders(headers)
216+
217+
gwConfig := gateway.Config{
218+
Headers: headers,
219+
TrustedMode: true,
220+
NoDNSLink: cfg.Gateway.NoDNSLink,
221+
PublicGateways: convertPublicGateways(cfg.Gateway.PublicGateways),
222+
}
223+
224+
return gwConfig, nil
225+
}
226+
217227
func convertPublicGateways(publicGateways map[string]*config.GatewaySpec) map[string]*gateway.Specification {
218228
gws := map[string]*gateway.Specification{}
219229

@@ -236,6 +246,7 @@ func convertPublicGateways(publicGateways map[string]*config.GatewaySpec) map[st
236246
NoDNSLink: gw.NoDNSLink,
237247
UseSubdomains: gw.UseSubdomains,
238248
InlineDNSLink: gw.InlineDNSLink.WithDefault(config.DefaultInlineDNSLink),
249+
TrustedMode: true,
239250
}
240251
}
241252

docs/examples/kubo-as-a-library/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ go 1.18
77
replace github.com/ipfs/kubo => ./../../..
88

99
require (
10-
github.com/ipfs/boxo v0.8.0-rc4
10+
github.com/ipfs/boxo v0.8.0-rc4.0.20230405082149-943f3d882acf
1111
github.com/ipfs/kubo v0.0.0-00010101000000-000000000000
1212
github.com/libp2p/go-libp2p v0.26.4
1313
github.com/multiformats/go-multiaddr v0.9.0

docs/examples/kubo-as-a-library/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -336,8 +336,8 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:
336336
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
337337
github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs=
338338
github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0=
339-
github.com/ipfs/boxo v0.8.0-rc4 h1:TT9uY/cw6yjmeKjfJPKaGZIYSJmV6B9Bd/O5Rem6MfA=
340-
github.com/ipfs/boxo v0.8.0-rc4/go.mod h1:RIsi4CnTyQ7AUsNn5gXljJYZlQrHBMnJp94p73liFiA=
339+
github.com/ipfs/boxo v0.8.0-rc4.0.20230405082149-943f3d882acf h1:jGzxd5WLpHjDTSq7sJ0F4gBtKC/c+xVKRLFvUYKpGh4=
340+
github.com/ipfs/boxo v0.8.0-rc4.0.20230405082149-943f3d882acf/go.mod h1:RIsi4CnTyQ7AUsNn5gXljJYZlQrHBMnJp94p73liFiA=
341341
github.com/ipfs/go-bitfield v1.1.0 h1:fh7FIo8bSwaJEh6DdTWbCeZ1eqOaOkKFI74SCnsWbGA=
342342
github.com/ipfs/go-bitfield v1.1.0/go.mod h1:paqf1wjq/D2BBmzfTVFlJQ9IlFOZpg422HL0HqsGWHU=
343343
github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY=

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ require (
1616
github.com/gogo/protobuf v1.3.2
1717
github.com/google/uuid v1.3.0
1818
github.com/hashicorp/go-multierror v1.1.1
19-
github.com/ipfs/boxo v0.8.0-rc4
19+
github.com/ipfs/boxo v0.8.0-rc4.0.20230405082149-943f3d882acf
2020
github.com/ipfs/go-block-format v0.1.2
2121
github.com/ipfs/go-cid v0.4.1
2222
github.com/ipfs/go-cidutil v0.1.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,8 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:
355355
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
356356
github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs=
357357
github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0=
358-
github.com/ipfs/boxo v0.8.0-rc4 h1:TT9uY/cw6yjmeKjfJPKaGZIYSJmV6B9Bd/O5Rem6MfA=
359-
github.com/ipfs/boxo v0.8.0-rc4/go.mod h1:RIsi4CnTyQ7AUsNn5gXljJYZlQrHBMnJp94p73liFiA=
358+
github.com/ipfs/boxo v0.8.0-rc4.0.20230405082149-943f3d882acf h1:jGzxd5WLpHjDTSq7sJ0F4gBtKC/c+xVKRLFvUYKpGh4=
359+
github.com/ipfs/boxo v0.8.0-rc4.0.20230405082149-943f3d882acf/go.mod h1:RIsi4CnTyQ7AUsNn5gXljJYZlQrHBMnJp94p73liFiA=
360360
github.com/ipfs/go-bitfield v1.1.0 h1:fh7FIo8bSwaJEh6DdTWbCeZ1eqOaOkKFI74SCnsWbGA=
361361
github.com/ipfs/go-bitfield v1.1.0/go.mod h1:paqf1wjq/D2BBmzfTVFlJQ9IlFOZpg422HL0HqsGWHU=
362362
github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY=

0 commit comments

Comments
 (0)