"oransc.org/nonrtric/capifcore/internal/discoverserviceapi"
"oransc.org/nonrtric/capifcore/internal/eventsapi"
"oransc.org/nonrtric/capifcore/internal/invokermanagementapi"
+ "oransc.org/nonrtric/capifcore/internal/keycloak"
"oransc.org/nonrtric/capifcore/internal/providermanagementapi"
"oransc.org/nonrtric/capifcore/internal/securityapi"
"github.com/deepmap/oapi-codegen/pkg/middleware"
echomiddleware "github.com/labstack/echo/v4/middleware"
log "github.com/sirupsen/logrus"
+ config "oransc.org/nonrtric/capifcore/internal/config"
"oransc.org/nonrtric/capifcore/internal/discoverservice"
"oransc.org/nonrtric/capifcore/internal/eventservice"
"oransc.org/nonrtric/capifcore/internal/helmmanagement"
func main() {
var port = flag.Int("port", 8090, "Port for CAPIF Core Function HTTP server")
+ var secPort = flag.Int("secPort", 4433, "Port for CAPIF Core Function HTTPS server")
flag.StringVar(&url, "chartMuseumUrl", "", "ChartMuseum URL")
flag.StringVar(&repoName, "repoName", "capifcore", "Repository name")
var logLevelStr = flag.String("loglevel", "Info", "Log level")
+ var certPath = flag.String("certPath", "certs/cert.pem", "Path for server certificate")
+ var keyPath = flag.String("keyPath", "certs/key.pem", "Path for server private key")
+
flag.Parse()
if loglevel, err := log.ParseLevel(*logLevelStr); err == nil {
}
go startWebServer(getEcho(), *port)
+ go startHttpsWebServer(getEcho(), *secPort, *certPath, *keyPath)
log.Info("Server started and listening on port: ", *port)
}
func getEcho() *echo.Echo {
- // This is how you set up a basic Echo router
e := echo.New()
// Log all requests
e.Use(echomiddleware.Logger())
+ // Read configuration file
+ cfg, err := config.ReadKeycloakConfigFile("configs")
+ if err != nil {
+ log.Fatalf("Error loading configuration file\n: %s", err)
+ }
+ km := keycloak.NewKeycloakManager(cfg, &http.Client{})
+
var group *echo.Group
// Register ProviderManagement
providerManagerSwagger, err := providermanagementapi.GetSwagger()
log.Fatalf("Error loading InvokerManagement swagger spec\n: %s", err)
}
invokerManagerSwagger.Servers = nil
- invokerManager := invokermanagement.NewInvokerManager(publishService, eventChannel)
+ invokerManager := invokermanagement.NewInvokerManager(publishService, km, eventChannel)
group = e.Group("/api-invoker-management/v1")
group.Use(middleware.OapiRequestValidator(invokerManagerSwagger))
invokermanagementapi.RegisterHandlersWithBaseURL(e, invokerManager, "/api-invoker-management/v1")
log.Fatalf("Error loading Security swagger spec\n: %s", err)
}
securitySwagger.Servers = nil
- securityService := security.NewSecurity(providerManager, publishService, invokerManager)
+ securityService := security.NewSecurity(providerManager, publishService, invokerManager, km)
group = e.Group("/capif-security/v1")
group.Use(middleware.OapiRequestValidator(securitySwagger))
securityapi.RegisterHandlersWithBaseURL(e, securityService, "/capif-security/v1")
e.Logger.Fatal(e.Start(fmt.Sprintf("0.0.0.0:%d", port)))
}
+func startHttpsWebServer(e *echo.Echo, port int, certPath string, keyPath string) {
+ e.Logger.Fatal(e.StartTLS(fmt.Sprintf("0.0.0.0:%d", port), certPath, keyPath))
+}
+
func keepServerAlive() {
forever := make(chan int)
<-forever
}
func hello(c echo.Context) error {
- return c.String(http.StatusOK, "Hello, World!\n")
+ return c.String(http.StatusOK, "Hello, World!")
}
func getSwagger(c echo.Context) error {