@@ -21,6 +21,7 @@ import (
21
21
"errors"
22
22
"github.com/grepplabs/kafka-proxy/pkg/apis"
23
23
gatewayclient "github.com/grepplabs/kafka-proxy/plugin/gateway-client/shared"
24
+ gatewayserver "github.com/grepplabs/kafka-proxy/plugin/gateway-server/shared"
24
25
localauth "github.com/grepplabs/kafka-proxy/plugin/local-auth/shared"
25
26
"github.com/hashicorp/go-hclog"
26
27
"github.com/hashicorp/go-plugin"
@@ -161,7 +162,7 @@ func Run(_ *cobra.Command, _ []string) {
161
162
var ok bool
162
163
passwordAuthenticator , ok = raw .(apis.PasswordAuthenticator )
163
164
if ! ok {
164
- logrus .Fatal (errors .New ("unsupported plugin type" ))
165
+ logrus .Fatal (errors .New ("unsupported PasswordAuthenticator plugin type" ))
165
166
}
166
167
}
167
168
@@ -181,7 +182,27 @@ func Run(_ *cobra.Command, _ []string) {
181
182
var ok bool
182
183
tokenProvider , ok = raw .(apis.TokenProvider )
183
184
if ! ok {
184
- logrus .Fatal (errors .New ("unsupported plugin type" ))
185
+ logrus .Fatal (errors .New ("unsupported TokenProvider plugin type" ))
186
+ }
187
+ }
188
+
189
+ var tokenInfo apis.TokenInfo
190
+ if c .Auth .Gateway .Server .Enable {
191
+ client := NewGatewayServerPluginClient ()
192
+ defer client .Kill ()
193
+
194
+ rpcClient , err := client .Client ()
195
+ if err != nil {
196
+ logrus .Fatal (err )
197
+ }
198
+ raw , err := rpcClient .Dispense ("tokenInfo" )
199
+ if err != nil {
200
+ logrus .Fatal (err )
201
+ }
202
+ var ok bool
203
+ tokenInfo , ok = raw .(apis.TokenInfo )
204
+ if ! ok {
205
+ logrus .Fatal (errors .New ("unsupported TokenInfo plugin type" ))
185
206
}
186
207
}
187
208
@@ -198,7 +219,7 @@ func Run(_ *cobra.Command, _ []string) {
198
219
if err != nil {
199
220
logrus .Fatal (err )
200
221
}
201
- proxyClient , err := proxy .NewClient (connset , c , listeners .GetNetAddressMapping , passwordAuthenticator , tokenProvider )
222
+ proxyClient , err := proxy .NewClient (connset , c , listeners .GetNetAddressMapping , passwordAuthenticator , tokenProvider , tokenInfo )
202
223
if err != nil {
203
224
logrus .Fatal (err )
204
225
}
@@ -300,7 +321,9 @@ func SetLogger() {
300
321
func NewGatewayClientPluginClient () * plugin.Client {
301
322
return NewPluginClient (gatewayclient .Handshake , gatewayclient .PluginMap , c .Auth .Gateway .Client .LogLevel , c .Auth .Gateway .Client .Command , c .Auth .Gateway .Client .Parameters )
302
323
}
303
-
324
+ func NewGatewayServerPluginClient () * plugin.Client {
325
+ return NewPluginClient (gatewayserver .Handshake , gatewayserver .PluginMap , c .Auth .Gateway .Server .LogLevel , c .Auth .Gateway .Server .Command , c .Auth .Gateway .Server .Parameters )
326
+ }
304
327
func NewLocalAuthPluginClient () * plugin.Client {
305
328
return NewPluginClient (localauth .Handshake , localauth .PluginMap , c .Auth .Local .LogLevel , c .Auth .Local .Command , c .Auth .Local .Parameters )
306
329
}
0 commit comments