···
secp256k1secec "gitlab.com/yawning/secp256k1-voi/secec"
-
func (s *Server) handleProxy(e echo.Context) error {
-
repo, isAuthed := e.Get("repo").(*models.RepoActor)
-
pts := strings.Split(e.Request().URL.Path, "/")
-
return fmt.Errorf("incorrect number of parts")
svc := e.Request().Header.Get("atproto-proxy")
svc = s.config.DefaultAtprotoProxy
···
svcPts := strings.Split(svc, "#")
-
return fmt.Errorf("invalid service header")
···
doc, err := s.passport.FetchDoc(e.Request().Context(), svcDid)
···
requrl := e.Request().URL
requrl.Host = strings.TrimPrefix(endpoint, "https://")
···
hj, err := json.Marshal(header)
-
s.logger.Error("error marshaling header", "error", err)
return helpers.ServerError(e, nil)
···
pj, err := json.Marshal(payload)
-
s.logger.Error("error marashaling payload", "error", err)
return helpers.ServerError(e, nil)
···
sk, err := secp256k1secec.NewPrivateKey(repo.SigningKey)
-
s.logger.Error("can't load private key", "error", err)
R, S, _, err := sk.SignRaw(rand.Reader, hash[:])
-
s.logger.Error("error signing", "error", err)
···
secp256k1secec "gitlab.com/yawning/secp256k1-voi/secec"
+
func (s *Server) getAtprotoProxyEndpointFromRequest(e echo.Context) (string, string, error) {
svc := e.Request().Header.Get("atproto-proxy")
svc = s.config.DefaultAtprotoProxy
···
svcPts := strings.Split(svc, "#")
+
return "", "", fmt.Errorf("invalid service header")
···
doc, err := s.passport.FetchDoc(e.Request().Context(), svcDid)
···
+
return endpoint, "", nil
+
func (s *Server) handleProxy(e echo.Context) error {
+
lgr := s.logger.With("handler", "handleProxy")
+
repo, isAuthed := e.Get("repo").(*models.RepoActor)
+
pts := strings.Split(e.Request().URL.Path, "/")
+
return fmt.Errorf("incorrect number of parts")
+
endpoint, svcDid, err := s.getAtprotoProxyEndpointFromRequest(e)
+
lgr.Error("could not get atproto proxy", "error", err)
+
return helpers.ServerError(e, nil)
requrl := e.Request().URL
requrl.Host = strings.TrimPrefix(endpoint, "https://")
···
hj, err := json.Marshal(header)
+
lgr.Error("error marshaling header", "error", err)
return helpers.ServerError(e, nil)
···
pj, err := json.Marshal(payload)
+
lgr.Error("error marashaling payload", "error", err)
return helpers.ServerError(e, nil)
···
sk, err := secp256k1secec.NewPrivateKey(repo.SigningKey)
+
lgr.Error("can't load private key", "error", err)
R, S, _, err := sk.SignRaw(rand.Reader, hash[:])
+
lgr.Error("error signing", "error", err)