Ruby on rails Ruby On Rails:ElasticSearch身份验证(轮胎和ElasticSearch Rails)
我在Heroku上部署了一个Ruby On Rails应用程序,我使用ElasticSearch插件,我的ElasticSearch集群工作正常,但最近ElasticSearch插件要求所有集群强制执行身份验证,以保护托管集群内的数据,现在在我们尝试发出的每个请求中,我们都会收到以下异常:Ruby on rails Ruby On Rails:ElasticSearch身份验证(轮胎和ElasticSearch Rails),ruby-on-rails,ruby-on-rails-4,
elasticsearch,tire,Ruby On Rails,Ruby On Rails 4,
elasticsearch,Tire,我在Heroku上部署了一个Ruby On Rails应用程序,我使用ElasticSearch插件,我的ElasticSearch集群工作正常,但最近ElasticSearch插件要求所有集群强制执行身份验证,以保护托管集群内的数据,现在在我们尝试发出的每个请求中,我们都会收到以下异常: Tire::Search::SearchRequestFailed(401:{“错误”:{“根本原因”:[{“类型”:“安全性异常”,“原因”:“操作[索引:数据/读取/搜索]需要身份验证”,“标题”:{“
Tire::Search::SearchRequestFailed(401:{“错误”:{“根本原因”:[{“类型”:“安全性异常”,“原因”:“操作[索引:数据/读取/搜索]需要身份验证”,“标题”:{“WWW身份验证”:“基本领域=\“屏蔽\”字符集=\“UTF-8\”}],“类型”:“安全性异常”,“原因”:“操作[索引:数据/读取/搜索]需要身份验证”,“标题”:{“WWW-Authenticate”:“基本领域=\“屏蔽\”字符集=\“UTF-8\”},状态:401}):
我们从Elasticsearch附带的插件中配置了一些用户,但是我不确定如何从我的ruby On Rails应用程序中输入此身份验证,我使用Tire将elastic search集成到我的ruby On Rails应用程序中,但我找不到我是否可以将此信息用于验证我的应用程序并解决此问题
我们想知道如何使用这两个gem进行身份验证:
而且我建议使用弹性搜索轨,而不是轮胎(缩写) 使用elasticsearch rails: gemfile
gem 'elasticsearch'
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
模型是否可搜索
gem 'elasticsearch'
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
将(可搜索关注点)应用于您的模型
配置弹性搜索客户端
对于初始值设定项(config/initializers/elastic_search_client.rb
或其他任何形式)中使用公共URL格式进行身份验证的所有模型
Elasticsearch::Client.new url:'https://username:password@api.server.org:4430/search
'
或者使用hash使用auth
Elasticsearch::Client.new hosts: [
{ host: 'my-protected-host',
port: '443',
user: 'USERNAME',
password: 'PASSWORD',
scheme: 'https'
} ]
查看以获取更多信息
注意:我没有自己测试,这是理论,可能是遗漏了什么,请检查
我希望这能有所帮助。我建议使用弹性搜索栏而不是轮胎(缩写) 使用elasticsearch rails: gemfile
gem 'elasticsearch'
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
模型是否可搜索
gem 'elasticsearch'
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
将(可搜索关注点)应用于您的模型
配置弹性搜索客户端
对于初始值设定项(config/initializers/elastic_search_client.rb
或其他任何形式)中使用公共URL格式进行身份验证的所有模型
Elasticsearch::Client.new url:'https://username:password@api.server.org:4430/search
'
或者使用hash使用auth
Elasticsearch::Client.new hosts: [
{ host: 'my-protected-host',
port: '443',
user: 'USERNAME',
password: 'PASSWORD',
scheme: 'https'
} ]
查看以获取更多信息
注意:我没有自己测试,这是理论,可能是遗漏了什么,请检查
我希望这有帮助