Forwarding oidc well-known configuration to id service

This commit is contained in:
LittleSheep 2024-11-23 18:23:10 +08:00
parent 25ab137173
commit 6f2010cb00

View File

@ -3,9 +3,12 @@ package api
import ( import (
pkg "git.solsynth.dev/hypernet/nexus/pkg/internal" pkg "git.solsynth.dev/hypernet/nexus/pkg/internal"
"git.solsynth.dev/hypernet/nexus/pkg/internal/auth" "git.solsynth.dev/hypernet/nexus/pkg/internal/auth"
"git.solsynth.dev/hypernet/nexus/pkg/internal/directory"
"git.solsynth.dev/hypernet/nexus/pkg/internal/http/ws" "git.solsynth.dev/hypernet/nexus/pkg/internal/http/ws"
"git.solsynth.dev/hypernet/nexus/pkg/nex"
"github.com/gofiber/contrib/websocket" "github.com/gofiber/contrib/websocket"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/proxy"
) )
func MapAPIs(app *fiber.App) { func MapAPIs(app *fiber.App) {
@ -21,6 +24,21 @@ func MapAPIs(app *fiber.App) {
}) })
wellKnown.Get("/check-ip", getClientIP) wellKnown.Get("/check-ip", getClientIP)
wellKnown.Get("/directory/services", listExistsService) wellKnown.Get("/directory/services", listExistsService)
wellKnown.Get("/openid-configuration", func(c *fiber.Ctx) error {
service := directory.GetServiceInstanceByType(nex.ServiceTypeAuth)
if service == nil || service.HttpAddr == nil {
return fiber.ErrNotFound
}
return proxy.Do(c, *service.HttpAddr+"/.well-known/openid-configuration")
})
wellKnown.Get("/jwks", func(c *fiber.Ctx) error {
service := directory.GetServiceInstanceByType(nex.ServiceTypeAuth)
if service == nil || service.HttpAddr == nil {
return fiber.ErrNotFound
}
return proxy.Do(c, *service.HttpAddr+"/.well-known/jwks")
})
} }
// Common websocket gateway // Common websocket gateway