基本身份验证应在邮递员中响应 500(授权),但 401 Unauthorized 可以正常工作。使用 ktor intellij mongodb

Posted

技术标签:

【中文标题】基本身份验证应在邮递员中响应 500(授权),但 401 Unauthorized 可以正常工作。使用 ktor intellij mongodb【英文标题】:basic auth respond 500 in postman when it should be OK(Authorized), but 401 Unathorized works fine. using ktor intellij mongodb 【发布时间】:2021-07-12 03:56:04 【问题描述】:

java.lang.NoSuchMethodError: kotlinx.coroutines.channels.LinkedListChannel: method ()V not found

这是我的数据库.kt

私有验证客户端 = KMongo.createClient().coroutine 私有 val 数据库 = client.getDatabase("PestaDanDagangDatabase") 私人验证用户 = database.getCollection() 私人 val 帖子 = database.getCollection() 暂停有趣的 getPostsForUser(email: String) : List return posts.find(Post::members 包含电子邮件).toList()

我正在关注一些教程... getPostsForUser 返回 Post 数据类的列表(它已经消失了.. 仍然需要学习使用 ***),即使我遵循相同的教程项目也在运行。我将返回更改为返回 posts.find(Post::members contains email).toString 并且函数返回 String 我的代码和我的教程结果都可以在邮递员中使用相同的响应 org.litote.kmongo.coroutine.CoroutineFindPublisher@44fc57b6(除了 44fc57b6)。

我尝试将返回更改为返回 posts.find(Post::members contains email) 和 Post 类型的函数返回类型 CoroutineFindPublisher,在邮递员中可以,但事件时间一直在计时或运行。

【问题讨论】:

能否提供相关代码? 是的,我只是编辑我的帖子,希望它变得更清晰。 刚刚意识到我的问题与身份验证无关..但仍然..抱歉。 我刚刚修复了它......我更新了所有实现......在此之前我重新安装了 intellij 和 ktor,但没有实现。谢谢你们。 【参考方案1】:

我也遇到了同样的问题,但对我来说,实现已更新到最新版本(如今天的 kmongo 4.4.0 & coroutines 1.6.0),错误是

kotlinx.coroutines.channels.LinkedListChannel: method 'void <init>() not found 

我意识到 .toList() 方法存在导入冲突

我只是简单地解决它,而不是

return posts.find(Post::members contains email).toList()

二手

return posts.find(Post::members contains email).publisher.KMongoToList()

作为导入

import org.litote.kmongo.coroutine.toList as KMongoToList

【讨论】:

以上是关于基本身份验证应在邮递员中响应 500(授权),但 401 Unauthorized 可以正常工作。使用 ktor intellij mongodb的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap错误:401未经授权 - 在Phonegap中使用基本身份验证的Rest API

如何在邮递员中从环境变量设置基本授权?

使用基于表单的身份验证时,http 服务器应在 401 响应中返回啥 WWW-Authenticate 标头?

Firebase 云功能,具有对外部 api 的基本身份验证的获取请求

Spring Security JWT - 通过授权标头的邮递员身份验证有效,但从我的 Angular 前端不起作用

摘要身份验证返回未经授权的