7 "github.com/pusher/oauth2_proxy/pkg/apis/sessions"
8 "github.com/pusher/oauth2_proxy/pkg/logger"
9 "github.com/pusher/oauth2_proxy/pkg/requests"
12type KeycloakProvider struct {
17func NewKeycloakProvider(p *ProviderData) *KeycloakProvider {
18 p.ProviderName = "Keycloak"
19 if p.LoginURL == nil || p.LoginURL.String() == "" {
20 p.LoginURL = &url.URL{
23 Path: "/oauth/authorize",
26 if p.RedeemURL == nil || p.RedeemURL.String() == "" {
27 p.RedeemURL = &url.URL{
33 if p.ValidateURL == nil || p.ValidateURL.String() == "" {
34 p.ValidateURL = &url.URL{
43 return &KeycloakProvider{ProviderData: p}
46func (p *KeycloakProvider) SetGroup(group string) {
50func (p *KeycloakProvider) GetEmailAddress(s *sessions.SessionState) (string, error) {
52 req, err := http.NewRequest("GET", p.ValidateURL.String(), nil)
53 req.Header.Set("Authorization", "Bearer "+s.AccessToken)
55 logger.Printf("failed building request %s", err)
58 json, err := requests.Request(req)
60 logger.Printf("failed making request %s", err)
65 var groups, err = json.Get("groups").Array()
67 logger.Printf("groups not found %s", err)
72 for i := range groups {
73 if groups[i].(string) == p.Group {
80 logger.Printf("group not found, access denied")
85 return json.Get("email").String()
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list