github.com/brioux/go-keycloak@v0.0.0-20240929191119-b54a3a01d90b/uma.go (about) 1 package keycloak 2 3 import ( 4 "context" 5 "fmt" 6 ) 7 8 // UMAService handles communication with Keycloak UMA 9 type UMAService service 10 11 // GetUMAUser allows user to view their token mappings. 12 // The provided interface is returned to be decoded on success. 13 func (c *UMAService) GetUMAUser( 14 ctx context.Context, 15 token string, 16 v interface{}, 17 ) (interface{}, *Response, error) { 18 path := fmt.Sprintf("%s/%s/protocol/openid-connect/userinfo", defaultBase, c.client.realm) 19 h := headers{authorization: token} 20 21 req, err := c.client.newRequest("GET", path, nil, h, false) 22 if err != nil { 23 return nil, nil, err 24 } 25 26 resp, err := c.client.do(ctx, req, v) 27 if err != nil { 28 return nil, resp, err 29 } 30 31 return v, resp, nil 32 }