* introspect * introspect and client assertion * introspect and client assertion * scopes * token introspection * introspect * refactoring * fixes * clenaup * Update example/internal/mock/storage.go Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com> * clenaup Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
30 lines
917 B
Go
30 lines
917 B
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
"net/url"
|
|
|
|
"golang.org/x/oauth2"
|
|
|
|
"github.com/caos/oidc/pkg/oidc"
|
|
"github.com/caos/oidc/pkg/utils"
|
|
)
|
|
|
|
//JWTProfileExchange handles the oauth2 jwt profile exchange
|
|
func JWTProfileExchange(ctx context.Context, jwtProfileGrantRequest *oidc.JWTProfileGrantRequest, caller tokenEndpointCaller) (*oauth2.Token, error) {
|
|
return CallTokenEndpoint(jwtProfileGrantRequest, caller)
|
|
}
|
|
|
|
func ClientAssertionCodeOptions(assertion string) []oauth2.AuthCodeOption {
|
|
return []oauth2.AuthCodeOption{
|
|
oauth2.SetAuthURLParam("client_assertion", assertion),
|
|
oauth2.SetAuthURLParam("client_assertion_type", oidc.ClientAssertionTypeJWTAssertion),
|
|
}
|
|
}
|
|
|
|
func ClientAssertionFormAuthorization(assertion string) utils.FormAuthorization {
|
|
return func(values url.Values) {
|
|
values.Set("client_assertion", assertion)
|
|
values.Set("client_assertion_type", oidc.ClientAssertionTypeJWTAssertion)
|
|
}
|
|
}
|