You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
5 years ago | |
|---|---|---|
| integration | 5 years ago | |
| .gitignore | 5 years ago | |
| LICENSE | 8 years ago | |
| README.md | 5 years ago | |
| attack_detection.go | 5 years ago | |
| authentication_management.go | 5 years ago | |
| client_attribute_certificate.go | 5 years ago | |
| client_initial_access.go | 5 years ago | |
| client_registration_policy.go | 5 years ago | |
| client_role_mappings.go | 5 years ago | |
| clients.go | 5 years ago | |
| components.go | 5 years ago | |
| config.go | 6 years ago | |
| credentials.go | 5 years ago | |
| definitions.go | 5 years ago | |
| errormessages.go | 5 years ago | |
| go.mod | 5 years ago | |
| go.sum | 5 years ago | |
| groups.go | 5 years ago | |
| identity_providers.go | 5 years ago | |
| keycloak_client.go | 5 years ago | |
| model_toolbox.go | 6 years ago | |
| model_toolbox_test.go | 6 years ago | |
| realm.go | 5 years ago | |
| recovery_code.go | 5 years ago | |
| roles.go | 5 years ago | |
| users.go | 5 years ago | |
README.md
Golang Keycloak REST Client
This Golang library provides Types and Methods to drive a Keycloak instance through its REST Admin interface.
## Supported Features
- Realms: CRUD, Export, Import
- Clients: CRU
- Users: CRUD
- Components: CRUD
Hello, World example
Create a directory for your project, initialize the Go module.
mkdir kc-test
cd kc-test
go mod init foo/bar
main.go:
package main
import (
"fmt"
"log"
"time"
keycloak "github.com/nmasse-itix/keycloak-client"
)
func main() {
config := keycloak.Config{
AddrTokenProvider: "http://localhost:8080/auth/realm/master",
AddrAPI: "http://localhost:8080/auth",
Timeout: 10 * time.Second,
}
client, err := keycloak.NewClient(config)
if err != nil {
log.Fatalf("could not create keycloak client: %v", err)
}
accessToken, err := client.GetToken("master", "admin", "admin")
if err != nil {
log.Fatalf("could not get access token: %v", err)
}
realms, err := client.GetRealms(accessToken)
if err != nil {
log.Fatalf("could not get realms: %v", err)
}
for _, realm := range realms {
fmt.Println(*realm.Realm)
}
}