Now using CORS everytime, but only frontend origin

This commit is contained in:
Florian Sylvain
2022-12-22 03:19:38 +01:00
parent d3c68d6c89
commit c49a28be83
+7 -9
View File
@@ -10,6 +10,9 @@ import (
) )
var ginMode = os.Getenv("APP_GIN_MODE") var ginMode = os.Getenv("APP_GIN_MODE")
var apiPort = os.Getenv("APP_API_PORT")
var frontPort = os.Getenv("APP_FRONT_PORT")
var hostAddress = os.Getenv("APP_HOST_ADDRESS")
func initEnvVariables() { func initEnvVariables() {
if godotenv.Load() != nil { if godotenv.Load() != nil {
@@ -30,7 +33,7 @@ func initBasicRoutes(r *gin.Engine) {
} }
func corsMiddleware(c *gin.Context) { func corsMiddleware(c *gin.Context) {
c.Writer.Header().Set("Access-Control-Allow-Origin", "*") c.Writer.Header().Set("Access-Control-Allow-Origin", fmt.Sprintf("http://%v:%v", hostAddress, frontPort))
c.Writer.Header().Set("Access-Control-Allow-Credentials", "true") c.Writer.Header().Set("Access-Control-Allow-Credentials", "true")
c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With") c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With")
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT") c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT")
@@ -43,10 +46,7 @@ func corsMiddleware(c *gin.Context) {
func initArticlesRoutes(r *gin.Engine) { func initArticlesRoutes(r *gin.Engine) {
articlesRouter := r.Group("/articles") articlesRouter := r.Group("/articles")
articlesRouter.Use(internal.AuthMiddleware.MiddlewareFunc()) articlesRouter.Use(corsMiddleware, internal.AuthMiddleware.MiddlewareFunc())
if ginMode != "release" {
articlesRouter.Use(corsMiddleware)
}
articlesRouter.GET("/", internal.GetAllArticlesHandler) articlesRouter.GET("/", internal.GetAllArticlesHandler)
articlesRouter.GET("/:id", internal.GetArticleHandler) articlesRouter.GET("/:id", internal.GetArticleHandler)
@@ -56,18 +56,16 @@ func initArticlesRoutes(r *gin.Engine) {
func initGin() { func initGin() {
r := gin.Default() r := gin.Default()
r.SetTrustedProxies([]string{"localhost"}) r.Use(corsMiddleware)
if ginMode == "release" { if ginMode == "release" {
gin.SetMode(ginMode) gin.SetMode(ginMode)
} else {
r.Use(corsMiddleware)
} }
initBasicRoutes(r) initBasicRoutes(r)
initArticlesRoutes(r) initArticlesRoutes(r)
r.Run(":" + os.Getenv("APP_API_PORT")) r.Run(":" + apiPort)
} }
func main() { func main() {