gpt4 book ai didi

ruby-on-rails - 将带有 sunspot 的 Rails 应用程序连接到经过授权的 tomcat/solr 服务器

转载 作者:行者123 更新时间:2023-11-28 21:48:50 25 4
gpt4 key购买 nike

好的,所以我有一个带有 solr 的单独服务器,它与应用程序连接得很好。使用通常的 sunspot.yml 我们有类似的东西:

production:
solr:
hostname: domain
port: 8080
log_level: WARNING
path: path/to/data

问题是我想授权我的 tomcat 应用程序。好像只要知道域名和端口就可以去访问solr/admin了。所以在我的 tomcat web.xml 中我添加了:

<security-constraint>
<web-resource-collection>
<web-resource-name>
Solr authenticated application
</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>role</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>REALM</realm-name>
</login-config>
<security-role>
<description>ROLE NAME</description>
<role-name>role</role-name>
</security-role>

这将要求任何访问 solr/admin 的人在被授予访问权限之前提供用户名和密码。问题是我如何告诉我的 Rails 应用程序这件事?执行此操作后,当我的 Rails 应用程序尝试访问 solr 服务器时,我会收到预期的“未经授权”响应。我知道它可能会进入 sunspot.yml 文件,但我必须添加什么?

最佳答案

我不确定 Sunspot 配置是否支持通过 YAML 的基本身份验证用户名和密码。这些选项全部连接在一起以分配给 Sunspot.config.solr.url,然后再分配给 RSolr。这是一个简单的疏忽——拉取请求在 https://github.com/outoftime/sunspot欢迎解决这个问题。

直接在初始化程序中分配 Sunspot.config.solr.url 或通过环境变量指定 URL 会更幸运。 Sunspot 支持 SOLR_URLWEBSOLR_URL 环境变量,这样做应该保留 Basic Auth 用户名和密码。

在您的开发环境中进行测试:

rake sunspot:reindex SOLR_URL=http://admin:foobar@localhost:8983/solr
rails server SOLR_URL=http://admin:foobar@localhost:8983/solr

关于ruby-on-rails - 将带有 sunspot 的 Rails 应用程序连接到经过授权的 tomcat/solr 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5581172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com