Les*_*ial 4 tomcat solr ruby-on-rails production-environment sunspot-rails
好的,所以我有一个单独的服务器与solr,这与应用程序完全正常.使用通常的sunspot.yml我们有类似的东西:
production:
solr:
hostname: domain
port: 8080
log_level: WARNING
path: path/to/data
Run Code Online (Sandbox Code Playgroud)
问题是我想授权我的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>
Run Code Online (Sandbox Code Playgroud)
这将要求任何人在被授予访问权限之前访问solr/admin用户名和密码.问题是如何告诉我的rails应用程序?执行此操作后,当我的rails应用程序尝试访问solr服务器时,我得到了预期的"未授权"响应.我知道它可能会进入sunspot.yml文件,但我需要添加什么?
我不确定Sunspot配置是否通过YAML支持Basic Auth用户名和密码.这些选项都连接在一起以分配Sunspot.config.solr.url给RSolr并随后提供给RSolr.这是一个简单的疏忽 - 欢迎来自https://github.com/outoftime/sunspot的拉取请求来解决这个问题.
您可以Sunspot.config.solr.url直接在初始化程序中分配,或通过环境变量指定URL.Sunspot支持环境变量SOLR_URL和WEBSOLR_URL环境变量,这样做应保留Basic Auth用户名和密码.
要在开发环境中测试它:
rake sunspot:reindex SOLR_URL=http://admin:foobar@localhost:8983/solr
rails server SOLR_URL=http://admin:foobar@localhost:8983/solr
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1734 次 |
| 最近记录: |