keycloak

package
v0.12.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2026 License: MIT Imports: 9 Imported by: 0

README

Keycloak Package

The keycloak package provides Keycloak integration for authentication and authorization in Gin applications.

Features

  • Keycloak Authentication: Seamless integration with Keycloak IAM
  • Role-based Access Control: Restrict access by realm roles
  • Token Validation: Automatic JWT token validation
  • Debug Mode: Optional token logging for debugging

Main Components

KeycloakConfig

Configuration and access control builder:

  • Auth(roles...): Create role-based access middleware
  • Configurable default roles
Middleware
  • MustLogin(): Enforces login requirement, validates Keycloak tokens
  • Auth(roles...): Role-based access control middleware

Configuration

Configure via Viper under keycloak key:

  • url: Keycloak server URL
  • realm: Realm name
  • client-id: Client ID
  • roles: Default required roles

Usage

// Enforce login
router.GET("/protected", keycloak.MustLogin(), handler)

// Role-based access
router.GET("/admin", kc.Auth("admin"), adminHandler)

Dependencies

  • gin-keycloak library
  • Viper for configuration
  • Zap for logging

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func KeycloakCallback added in v0.10.4

func KeycloakCallback() gin.HandlerFunc

func MustLogin added in v0.4.11

func MustLogin() gin.HandlerFunc

func RedirectKeyCloakLogin added in v0.10.4

func RedirectKeyCloakLogin(c *gin.Context, redirectURI string)

Types

type KeycloakConfig

type KeycloakConfig struct {
	DefaultRoles []string
	BuildConfig  ginkeycloak.BuilderConfig
}

func NewKeycloakConfig

func NewKeycloakConfig(logger *zap.Logger) *KeycloakConfig

func (*KeycloakConfig) Auth

func (kc *KeycloakConfig) Auth(roles ...string) gin.HandlerFunc

type KeycloakFullSettings added in v0.10.4

type KeycloakFullSettings struct {
	URL          string
	Realm        string
	ClientID     string
	ClientSecret string
	Endpoint     string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL