✨ Forward webfinger request
This commit is contained in:
@@ -2,14 +2,39 @@ package api
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"git.solsynth.dev/hypernet/nexus/pkg/internal/directory"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/gofiber/fiber/v2/middleware/proxy"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/valyala/fasthttp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func forwardWebfinger(c *fiber.Ctx) error {
|
||||
service := directory.GetServiceInstanceByType("co")
|
||||
|
||||
if service == nil || service.HttpAddr == nil {
|
||||
return fiber.ErrNotFound
|
||||
}
|
||||
|
||||
url := c.OriginalURL()
|
||||
url = strings.Replace(url, "/.well-known", "", 1)
|
||||
url = *service.HttpAddr + url
|
||||
|
||||
if tk, ok := c.Locals("nex_token").(string); ok {
|
||||
c.Request().Header.Set(fiber.HeaderAuthorization, fmt.Sprintf("Bearer %s", tk))
|
||||
} else {
|
||||
c.Request().Header.Del(fiber.HeaderAuthorization)
|
||||
}
|
||||
|
||||
return proxy.Do(c, url, &fasthttp.Client{
|
||||
NoDefaultUserAgentHeader: true,
|
||||
DisablePathNormalizing: true,
|
||||
StreamResponseBody: true,
|
||||
})
|
||||
}
|
||||
|
||||
func forwardService(c *fiber.Ctx) error {
|
||||
serviceType := c.Params("service")
|
||||
ogKeyword := serviceType
|
||||
|
Reference in New Issue
Block a user