mirror of
https://github.com/linka-cloud/grpc.git
synced 2025-06-22 17:22:26 +00:00
add auth interceptors
This commit is contained in:
56
interceptors/auth/options.go
Normal file
56
interceptors/auth/options.go
Normal file
@ -0,0 +1,56 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
grpc_auth "github.com/grpc-ecosystem/go-grpc-middleware/auth"
|
||||
)
|
||||
|
||||
type Option func(o *options)
|
||||
|
||||
func WithMethods(methods ...string) Option {
|
||||
return func(o *options) {
|
||||
o.methods = append(o.methods, methods...)
|
||||
}
|
||||
}
|
||||
|
||||
func WithIgnoredMethods(methods ...string) Option {
|
||||
return func(o *options) {
|
||||
o.ignoredMethods = append(o.ignoredMethods, methods...)
|
||||
}
|
||||
}
|
||||
|
||||
func WithBasicValidators(validators ...BasicValidator) Option {
|
||||
var authFns []grpc_auth.AuthFunc
|
||||
for _, v := range validators {
|
||||
authFns = append(authFns, makeBasicAuthFunc(v))
|
||||
}
|
||||
return func(o *options) {
|
||||
o.authFns = append(o.authFns, authFns...)
|
||||
}
|
||||
}
|
||||
|
||||
func WithTokenValidators(validators ...TokenValidator) Option {
|
||||
var authFns []grpc_auth.AuthFunc
|
||||
for _, v := range validators {
|
||||
authFns = append(authFns, makeTokenAuthFunc(v))
|
||||
}
|
||||
return func(o *options) {
|
||||
o.authFns = append(o.authFns, authFns...)
|
||||
}
|
||||
}
|
||||
|
||||
func WithX509Validators(validators ...X509Validator) Option {
|
||||
var authFns []grpc_auth.AuthFunc
|
||||
for _, v := range validators {
|
||||
authFns = append(authFns, makeX509AuthFunc(v))
|
||||
}
|
||||
return func(o *options) {
|
||||
o.authFns = append(o.authFns, authFns...)
|
||||
}
|
||||
}
|
||||
|
||||
type options struct {
|
||||
methods []string
|
||||
ignoredMethods []string
|
||||
|
||||
authFns []grpc_auth.AuthFunc
|
||||
}
|
Reference in New Issue
Block a user