我最近遇到的一个问题是关于 asp.net core 中的 JWT 中间件如何工作,如果您想使用身份提供者非对称密钥(可能基于 JWKS)验证令牌,则可以设置授权 URL。我见过的所有例子\xe2\x80\x99都完全无法解释这个权威URL应该是什么。一些 auth0 示例说它 \xe2\x80\x99 只是您的 auth0 域 - 但如果 \xe2\x80\x99 是这种情况,那么中间件如何从这个基本 URL 中找到公钥?每个提供商对于可以找到 JWKS 的端点都有不同的约定 - 那么这是如何工作的呢?
\n\n我的要求是,我需要使用本地身份提供商,其中 JWKS 端点与 auth0、okla、identity 4 或其他提供商正在使用的任何提供商完全不同。
\n\n是否有一些我\xe2\x80\x99m 不知道的所有这些提供程序都使用的标准发现机制?我是否需要在内部身份 Web 应用程序 I\xe2\x80\x99m 中使用相同的发现机制才能使该中间件正常工作?
\n\n谢谢!
\n如果我创建并启动一个 KafkaStream 实例,然后在关闭钩子调用 .close() 中,则不会发生任何事情 - 日志记录表明存在的一个 StreamThread 已进入 PENDING_SHUTDOWN 状态,但随后就永远保持这种状态。我已经尝试了所有方法,但没有运气 - 已阅读 Kafka 流源代码以了解它在关闭期间做了什么,但在我看来,代码意味着 StreamThread 如果处于运行状态,将永远不会停止(这是不可能的) - 我没有在 Kafka JIRA 中看到任何此类性质的错误。
这是我的简单 KafkaStream (scala) 应用程序的相关代码:
val props: Properties = {
val p = new Properties()
p.put(StreamsConfig.APPLICATION_ID_CONFIG, "test-application")
p.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092")
p.put(StreamsConfig.NUM_STREAM_THREADS_CONFIG, "1")
p
}
implicit val produced = Produced.`with`(new StringSerde(), new StringSerde())
val builder: StreamsBuilder = new StreamsBuilder()
val in: KStream[String, String] = builder.stream[String, String]("input-topic")
in.map((k,v) =>{
println("Consumed and transforming value")
(k,s"$v_transformed")
}).to("output-topic")
val streams: KafkaStreams = new KafkaStreams(builder.build(), props) …Run Code Online (Sandbox Code Playgroud)