No Description

Darko Luketic 7bdfd541f1 added RoleInRoles utility function 2 months ago
ginerror af85669f1c bad copy/paste, changed ginerror.Error field 2 months ago
keycloakclaims 7bdfd541f1 added RoleInRoles utility function 2 months ago
README.md 611f911b5f dear imports in readme 2 months ago
gin.go ef64b6cff8 errors have to be an array after all 2 months ago
go.mod 0ef4602dec initial 2 months ago
go.sum 0ef4602dec initial 2 months ago

README.md

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)
}