Specify the ip addr as "webui_host" can solve anonymous access issue.
You should set webui_host the same as request.env['REMOTE_ADDR'] ] to pass the check, like :
webui_host: "::ffff:10.239.36.25"
But the fixing imports another issue. :) The osc client will login as the _nobody_ by default which caused permission issues.
And my request.env.inspect:
request.env.inspect = {"rack.session"=>{:session_id=>"f7b1177cf432f9bf9e8019b41bb36c51"}, "HTTP_HOST"=>"api.obstest.sh.intel.com", "HTTP_ACCEPT"=>"*/*", "SERVER_NAME"=>"api.obstest.sh.intel.com", "REQUEST_PATH"=>"/", "rack.url_scheme"=>"http", "HTTP_USER_AGENT"=>"buildservice-webclient/1.0", "action_controller.request.request_parameters"=>{}, "rack.errors"=>#FCGI::Stream:0xb6758954, "CONTENT_TYPE"=>"text/plain", "SERVER_PROTOCOL"=>"HTTP/1.1", "FCGI_ROLE"=>"RESPONDER", "rack.version"=>[1, 0], "rack.run_once"=>false, "REMOTE_ADDR"=>"::ffff:10.239.36.25", "SERVER_SOFTWARE"=>"lighttpd/1.4.20", "SCRIPT_NAME"=>"/dispatch.fcgi", "SERVER_ADDR"=>"::ffff:10.239.36.25", "HTTP_VERSION"=>"HTTP/1.1", "rack.multithread"=>false, "action_controller.request.path_parameters"=>{"action"=>"workerstatus", "controller"=>"status"}, "rack.multiprocess"=>true, "REQUEST_URI"=>"/status/workerstatus", "REMOTE_PORT"=>"39996", "rack.request.query_hash"=>{}, "SERVER_PORT"=>"80", "rack.session.options"=>{:domain=>nil, :expire_after=>nil, :key=>"_session_id", :id=>"f7b1177cf432f9bf9e8019b41bb36c51", :httponly=>true, :path=>"/"}, "REQUEST_METHOD"=>"GET", "DOCUMENT_ROOT"=>"/srv/www/obs/api/public", "action_controller.request.query_parameters"=>{}, "action_controller.rescue.request"=>#
On Wednesday 30 June 2010 05:15:25 Zhang, Vivian wrote:
Hi, I have setup OBS 2.0.1 on my local machine and tried to enable anonymous access.
Here is my config in /srv/www/obs/api/config/options.xml:
allow_anonymous: true webui_host: build.obstest.sh.intel.com
Unfortunately, it does not work, the log reports : Processing StatusController#workerstatus (for ::ffff:10.239.36.25 at 2010-06-30 11:09:50) [GET] [D|# 8304] AUTH: [D|# 8304] remote_host: [D|# 8304] remote_addr: ::ffff:10.239.36.25 [D|# 8304] no authentication string was sent
Seems the request.env['REMOTE_HOST'] is NULL and it failed at the host check at: [...app/controllers/application_controller.rb] if @http_user.nil? and CONFIG['allow_anonymous'] and CONFIG['webui_host'] and [ request.env['REMOTE_HOST'], request.env['REMOTE_ADDR'] ].include?( CONFIG['webui_host'] )
Any comments?
Try to specify the ip addr as "webui_host". lighttpd 1.4 seems to require that since it does no dns lookup for that.
Putting the address into webui_host doesn't change the situation here, either.
If that does not help, I would be interessted in the output of "request.env.inspect" near this code line.
08:20 ares:../obs/api # grep -r request.env.inspect . grep: ./tmp/sockets/fcgi.socket-4: No such device or address grep: ./tmp/sockets/fcgi.socket-7: No such device or address grep: ./tmp/sockets/fcgi.socket-10: No such device or address grep: ./tmp/sockets/fcgi.socket-1: No such device or address grep: ./tmp/sockets/fcgi.socket-0: No such device or address grep: ./tmp/sockets/fcgi.socket-9: No such device or address grep: ./tmp/sockets/fcgi.socket-3: No such device or address grep: ./tmp/sockets/fcgi.socket-8: No such device or address grep: ./tmp/sockets/fcgi.socket-6: No such device or address grep: ./tmp/sockets/fcgi.socket-5: No such device or address grep: ./tmp/sockets/fcgi.socket-2: No such device or address grep: ./tmp/sockets/fcgi.socket-11: No such device or address N�����r��y隊Z)z{.���Wlz��qﮞ˛���m�)z{.��+�Z+i�b�*'jW(�f�vǦj)h���Ǜ�)]���Ǿ��i�������