使用 couchdb4j api、HTTP unauthorized: "You are not a server admin." 连接到 couchdb



我使用couchdb4j与couchDB建立连接,就像主题中的用户一样:Java couchdb4j数据库连接

因此,在本地,我可以通过使用连接到couchdb

Session LocalSession= new Session("localhost", 5984);

但当我尝试使用我公司的couchdb版本时,它不起作用。。我得到了这个错误:(NB我担任管理员)

 avr. 02, 2015 5:31:04 PM com.fourspaces.couchdb.Session createDatabase
Avertissement: Error creating database: mydatabase
Exception in thread "main" java.lang.NullPointerException
    at filecomparison.DbaseManag.saveFinalDocument(DbaseManag.java:359)
    at filecomparison.DbaseManag.saveEntryQueryLog(DbaseManag.java:247)
    at filecomparison.LoadFiles.loadVirtuosoLog(LoadFiles.java:207)
    at filecomparison.LoadFiles.loadingQueryLog(LoadFiles.java:772)
    at filecomparison.Main.main(Main.java:197)

在";couchdb4j";库我观察到会话构造函数有4个不同的版本(但没有一个版本使用参数布尔使用验证):

公共会话(字符串主机,int端口,布尔安全)

公共会话(字符串主机,int端口)

公共会话(字符串主机、int端口、字符串用户、字符串传递、布尔安全)

公共会话(字符串主机、int端口、字符串用户、字符串传递)

不管怎样,我试着全部使用它们,但没有成功(即使创建了Session对象)

在运行java代码时,我还尝试使用以下命令查看服务器日志中打印的内容:

tail -f /var/log/couchdb/couch.log

我意识到总是有同样的错误:

[Tue, 07 Apr 2015 14:07:29 GMT] [debug] [<0.1738.0>] 'DELETE' /mydatabase {1,1} from "127.0.0.1"
Headers: [{'Host',"127.0.0.1:5984"},
          {'User-Agent',"Jakarta Commons-HttpClient/3.1"}]
[Tue, 07 Apr 2015 14:07:29 GMT] [debug] [<0.1738.0>] OAuth Params: []
[Tue, 07 Apr 2015 14:07:29 GMT] [debug] [<0.1738.0>] Minor error in HTTP request: {unauthorized,
                                                   <<"You are not a server admin.">>}

搜索了一段时间后,我看到了使用curl命令解决此身份验证问题的一些解决方案,就像本主题中使用管理服务器凭据打开CouchDB会话一样。例如

curl -X DELETE http://username:password@localhost:5984/mydatabase

但是有人知道如何用我的java代码解决问题吗?我应该更改库吗?还是这是couchdb配置的问题?

提前感谢您的任何提示!

问候

这是CouchDB配置的问题吗

也许不是

正如您在日志行引用中所显示的那样,java代码不会发送任何身份验证信息。您可以将这些日志行与curl请求结果中出现的日志行进行比较。应存在例如Auth或Cookie标头。

也许是的

你说相同的代码成功/失败取决于CouchDB目标?然后,比较两个CouchDB安装的身份验证处理程序配置可能是值得的。也许您的库正在使用的身份验证方法没有在远程CouchDB中处理。

相关内容

最新更新