Solr 教學 (2) – tomcat 7 以帳號密碼限制存取頁面
接續 Solr 教學 (1) – 安裝篇,安裝完 solr 後預設的管理頁面 http://domain:8080/solr 是不用帳號密碼就可以登入的,這樣太危險了 … tomcat 可以設定只允許特定 IP 存取頁面或目錄,這邊先記錄使用帳號密碼登入的方法!
小蛙從參考資料1中開始學著設定,這部分還蠻容易的,存取 http://domain:8080/solr 頁面的時候,會跳出視窗要求做登入的動作,成功登入後才可以進行管理的動作,這裡發現另一個問題,如果是要做 select 的時候,用類似 HttpGet, curl, wget 這類的方法時要怎麼登入呢?參考資料1的後半段小蛙實作不出來,如果有高手有成功試出來的話,可以留言給小蛙唷!
這篇要記錄的東西可以達到兩件事
- 瀏覽 http://domain:8080/solr 管理頁面時,需要做登入動作
- 可透過 http://username:password@domain:port/solr/example/select?q=*%3A*&wt=json&indent=true 的方式進行資料查詢
直接開始:
- 小蛙的環境是 Ubuntu 13.04 64bit + Solr 4.5.0 + tomcat 7,首先新增一個使用者角色
1
# vim /var/lib/tomcat7/conf/tomcat-users.xml
1234<
role
rolename
=
"solr_admin"
/>
<
user
username
=
"your_username"
password
=
"your_password"
roles
=
"solr_admin"
/>
- 編輯網頁目錄下的 web.xml,在 <web-app> </web-app> 之間加入 <security-constraint> 設定
1
# vim /var/lib/tomcat7/webapps/solr/WEB-INF/web.xml
01020304050607080910111213<
security-constraint
>
<
web-resource-collection
>
<
web-resource-name
>Solr authenticated application</
web-resource-name
>
<
url-pattern
>/*</
url-pattern
>
</
web-resource-collection
>
<
auth-constraint
>
<
role-name
>solr_admin</
role-name
>
</
auth-constraint
>
</
security-constraint
>
<
login-config
>
<
auth-method
>BASIC</
auth-method
>
<
realm-name
>solr</
realm-name
>
</
login-config
>
- 重新啟動 tomcat,連到 http://domain:8080/solr 就可以看到要求登入畫面
1
# service tomcat7 restart
- 從 solr 管理頁面得到的 select 網址,在前面加上帳號:密碼也可以正常取得資料,如下。
1
http://username:password@domain:port/solr/example/select?q=*%3A*&wt=json&indent=true
下一篇 Solr 教學 (3) – 以 Remote Address Filter 限制存取 將記錄怎麼使用 tomcat 7 內建的 Remote Address Filter 以 IP 的方式設定白名單或黑名單。
Solr 系列文章:
- Solr 教學 (1) – 安裝篇
- Solr 教學 (2) – tomcat 7 以帳號密碼限制存取頁面
- Solr 教學 (3) – 以 Remote Address Filter 限制存取
- Solr 教學 (4) – 使用 DataImport 匯入資料庫資料
- Solr 教學 (5) – 建立新的 Core