Add support for SSH certificates to OIDC.
Update the interface for all the provisioners.
This commit is contained in:
parent
a44b0a1d52
commit
f01286bb48
9 changed files with 147 additions and 13 deletions
34
authority/provisioner/method.go
Normal file
34
authority/provisioner/method.go
Normal file
|
@ -0,0 +1,34 @@
|
|||
package provisioner
|
||||
|
||||
import (
|
||||
"context"
|
||||
)
|
||||
|
||||
// Method indicates the action to action that we will perform, it's used as part
|
||||
// of the context in the call to authorize. It defaults to Sing.
|
||||
type Method int
|
||||
|
||||
// The key to save the Method in the context.
|
||||
type methodKey struct{}
|
||||
|
||||
const (
|
||||
// SignMethod is the method used to sign X.509 certificates.
|
||||
SignMethod Method = iota
|
||||
// SignSSHMethod is the method used to sign SSH certificate.
|
||||
SignSSHMethod
|
||||
// RevokeMethod is the method used to revoke X.509 certificates.
|
||||
RevokeMethod
|
||||
)
|
||||
|
||||
// NewContextWithMethod creates a new context from ctx and attaches method to
|
||||
// it.
|
||||
func NewContextWithMethod(ctx context.Context, method Method) context.Context {
|
||||
return context.WithValue(ctx, methodKey{}, method)
|
||||
}
|
||||
|
||||
// MethodFromContext returns the Method saved in ctx. Returns Sign if the given
|
||||
// context has no Method associated with it.
|
||||
func MethodFromContext(ctx context.Context) Method {
|
||||
m, _ := ctx.Value(methodKey{}).(Method)
|
||||
return m
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue