Commit Graph

32 Commits

Author SHA1 Message Date
Oliver Gugger
9ad67ea672 proxy+auth: fix post request 2024-05-24 08:36:06 +02:00
Boris Nagaev
7579f92a08 auth: don't send client's headers back
Create fresh http.Header object filled with the only header:
"Content-Type: application/grpc".
2024-04-23 09:27:49 -03:00
Boris Nagaev
fb02e3f030 auth: send LSAT and L402 Authorization headers
Again, as with WWW-Authenticate header, existing aperture instances
expect LSAT, and the protocol defines it is L402, so send both, LSAT
first, to maintain backward compatibility.

The header "Authorization: LSAT..." can be removed in the future,
when all aperture instances are upgraded.
2024-04-23 09:27:49 -03:00
Boris Nagaev
709463fe5b proxy: LSAT and L402 WWW-Authenticate headers
Old clients expect "L402 macaroon=..." in the first WWW-Authenticate, while
the protocol [1] says it should be "WWW-Authenticate: L402 macaroon=...",
so send both LSAT and L402. LSAT must be sent first, to maintain backward
compatibility with older clients.

[1] https://github.com/lightninglabs/L402/blob/master/protocol-specification.md
2024-04-23 09:27:49 -03:00
Boris Nagaev
a4431801ef multi: replace LSAT with L402
auth: LsatAuthenticator -> L402Authenticator
sed -i 's/LsatAuthenticator/L402Authenticator/g' aperture.go auth/authenticator.go auth/authenticator_test.go

rename package lsat to l402
git mv lsat/ l402
sed 's@aperture/lsat@aperture/l402@g' -i `git grep -l aperture/lsat`
sed -i 's@package lsat@package l402@' `git grep -l 'package lsat'`
sed -i 's@lsat\.@l402.@g' -i `git grep -l 'lsat\.'`
sed 's@l402.Id@lsat.Id@' -i mint/mint_test.go

replace lsat with l402 in the code
sed 's@lsat@l402@' -i mint/mint_test.go
sed 's@Lsat@L402@' -i l402/client_interceptor.go
sed 's@lsatstore@l402store@' -i l402/store_test.go

replace LSAT to L402 in comments
sed '/\/\//s@LSAT@L402@g' -i `git grep -l '//.*LSAT'`

replace LSAT -> L402 in the code, skip when a string starts with it
sed 's@\([^"/]\)LSAT@\1L402@g' -i `git grep -l LSAT`
2024-04-16 19:33:03 -03:00
Oliver Gugger
96e69a979c challenger+auth: implement invoice checker 2020-08-11 10:08:39 +02:00
Elle Mouton
162571ac45 aperture: Custom price per service 2020-05-13 09:57:40 +02:00
Oliver Gugger
59268f8f59 auth+lsat: move LSAT specific code 2020-03-19 16:16:34 +01:00
Oliver Gugger
c2e191af14 multi: use moved lsat code 2020-03-19 16:12:33 +01:00
Olaoluwa Osuntokun
0c14706fa4 aperture: propagate rename 2020-03-18 13:57:18 -07:00
Oliver Gugger
1e20b175cd auth: add stream server interceptor 2020-02-03 17:10:59 +01:00
Oliver Gugger
0fffe01dcc auth: refactor interceptor token extraction 2020-02-03 17:10:58 +01:00
Oliver Gugger
76a5ed5f2a multi: change WWW-Authenticate header format
To be compliant with RFC 7235 section 4.1 we change the format of the
WWW-Authenticate header field to double quoted and comma separated
fields.
2020-01-07 15:38:22 +01:00
Oliver Gugger
a402e403bc auth+log: add log subsystem name as constant 2020-01-07 14:37:07 +01:00
Oliver Gugger
45e4bb49d5 auth: add server interceptor 2020-01-07 14:37:07 +01:00
Oliver Gugger
c6c62b9472 multi: fix all linter errors 2019-12-04 10:58:04 +01:00
Oliver Gugger
3e2d486f75 auth: add auth level constant 2019-11-29 17:12:53 +01:00
Oliver Gugger
d58c70588d auth: remove unused constant 2019-11-29 16:15:40 +01:00
Wilmer Paulino
831a41b33e macaroons: remove temporary macaroon creation and verification logic 2019-11-26 11:14:11 -08:00
Wilmer Paulino
530894a5ed auth: remove unused Challenger interface 2019-11-26 11:13:45 -08:00
Wilmer Paulino
38cd0e7847 auth: integrate proper macaroon creation and verification
We move the proxy from using its placeholder macaroon creation and
verification to instead use the agreed upon macaroon design. Much of
this is solely a refactor, but some new functionality has also been
introduced as part of integrating the LSAT mint:

1. A request's target service is now verified to ensure its attached
   LSAT is authorized.

2. The preimage is now checked against the token's committed payment
   hash to ensure it has been paid for.
2019-11-26 11:13:19 -08:00
Wilmer Paulino
95c405b0c7 auth+proxy: extend Authenticator methods with target service name
The target service name remains unused in its current form, but will be
required in order to verify that an incoming request with an LSAT
attached is authorized to access the service being attempted. We can
derive this from the request's host field, but we choose to extend the
methods with the additional parameter in order to prevent parsing the
host field again to determine which service is being accessed.
2019-11-26 11:12:48 -08:00
Wilmer Paulino
7b676b8b91 auth: use concrete preimage type in FromHeader and SetHeader 2019-11-26 11:12:20 -08:00
Oliver Gugger
aef413da0a auth+proxy: forward auth to backend 2019-11-18 10:41:12 +01:00
Oliver Gugger
8f4dfc5d57 auth+macaroons: allow authorization by macaroon only 2019-11-18 10:41:11 +01:00
Oliver Gugger
00f661318f proxy: send error as gRPC error 2019-11-15 09:45:06 +01:00
Oliver Gugger
8cbb4fc4fb auth: create invoice request with closure, add challenger 2019-11-12 12:02:09 +01:00
Oliver Gugger
a44e9fbd22 freebie+proxy: add memory based freebie DB implementation 2019-11-06 13:21:56 +01:00
Oliver Gugger
83395c0c98 proxy+auth: add log statements 2019-11-06 13:21:55 +01:00
Oliver Gugger
7e0c1dd97e multi: add persistent logger 2019-11-06 13:21:51 +01:00
Oliver Gugger
5a3b8b79d2 proxy: implement basic proxy functionality 2019-11-06 13:21:45 +01:00
Valentine Wallace
279fa2a64b Initial version of the proxy.
Missing: logging, an Authenticator implementing the LSAT HTTP
and gRPC protocol.
2019-09-12 16:41:25 -07:00