Go to file
2021-11-28 16:25:58 +01:00
ginerror bad copy/paste, changed ginerror.Error field 2021-11-15 14:58:15 +01:00
keycloakclaims added RoleInRoles utility function 2021-11-28 16:25:58 +01:00
gin.go errors have to be an array after all 2021-11-17 11:12:26 +01:00
go.mod initial 2021-11-14 16:37:58 +01:00
go.sum initial 2021-11-14 16:37:58 +01:00
README.md dear imports in readme 2021-11-17 11:49:32 +01:00

ginoidc

ginoidc is a package based on XenitAB's gin oidc middleware.

It features the handler being permissive and adds errors to the *gin.Context's context values under the "oidcerrors" key.

You can also extract keycloak claims from the *gin.Context via keycloakclaims.FromRequest(*gin.Context).

package main
import (
    "git.icod.de/dalu/ginoidc"
    "git.icod.de/dalu/ginoidc/keycloakclaims"
    "git.icod.de/dalu/oidc/options"
)
func main() {
    r := gin.Default()

    var cfg config.OIDCConfig
            
    oidcHandler := ginoidc.New(
       options.WithIssuer(cfg.Issuer),
       options.WithRequiredTokenType("JWT"),
       options.WithRequiredAudience(cfg.Audience),
       options.IsPermissive(),
    )
    v1 := r.Group("/api/v1")
    v1.Use(oidcHandler)

    entity := v1.Group("/entity")
    entity.GET("/", List)
    entity.GET("/:id", GetOne)
    entity.POST("/", CreateOne)
    entity.PUT("/:id", UpdateOne)
    entity.DELETE("/:id", DeleteOne)
}

// example handler
func List(cx *gin.Context) {
    claims := keycloakclaims.FromRequest(cx)
    cx.JSON(200, claims)
}