| 2008-06-10 01:44:05 | Ответить |
|---|---|
|
Volkov Sergey Адрес: Сообщений: 2 Регистр: 2008-03-11 его блог 0 сообщ. |
RPC сервер с ActionWebService |
|
Делаю как обычно XMLRPC сервис с ActionWebService и Rails 2.0.2
Контроллер: class RpcController < ApplicationController skip_before_filter :verify_authenticity_token web_service_dispatching_mode :layered web_service :user, UserRpcService.new end Сервис-класс: class UserRpcService < ActionWebService::Base web_service_api UserRpcAPI def auth(login, passwd) user = User::find(:first, :conditions => {:login => login, :passwd => passwd}) raise UserAuthException, "Auth failed" unless user.instance_of? (User) true end end В методе UserRpcService.auth мне нужно знать с какого IP адресе поступил RPC запрос. Перелопатил исходники, и monkey-patching применял, нигде до объекта request доступа не получил. |
|
| как определить удаленный IP адрес? |
| 2008-06-07 23:47:06 | Ответить |
|---|---|
|
Ruslan Voloshin Адрес: odessa Сообщений: 1226 Регистр: 2007-03-13 его блог 40 сообщ. |
RE: RPC сервер с ActionWebService |
|
Думаю что теб стоит покопать в эту сторону
------------
CGI::QueryExtension Занимаюсь вебом и продвижением сайтов.
|
|
| 2008-06-09 05:55:36 | Ответить |
|---|---|
|
Ruslan Voloshin Адрес: odessa Сообщений: 1226 Регистр: 2007-03-13 его блог 40 сообщ. |
RE: RPC сервер с ActionWebService |
|
или попробуй вызвать
------------
ActionController::AbstractRequest.remote_ip Занимаюсь вебом и продвижением сайтов.
|
|
| 2008-06-09 12:56:00 | Ответить |
|---|---|
|
Volkov Sergey Адрес: Сообщений: 2 Регистр: 2008-03-11 его блог 0 сообщ. |
RE: RE: RPC сервер с ActionWebService |
|
Нет, все проще, потратил почти день, перерыл исходники, надо делать так:
Контроллер: class RpcController < ApplicationController skip_before_filter :verify_authenticity_token web_service_dispatching_mode :layered web_service(:user) do UserRpcService.new(self) end end Сервис-класс: class UserRpcService < ActionWebService::Base web_service_api UserRpcAPI def initialize(controller = nil) @controller = controller end def auth(login, passwd) puts @controller.request.remote_ip user = User::find(:first, :conditions => {:login => login, :passwd => passwd}) raise UserAuthException, "Auth failed" unless user.instance_of? (User) true end end И вообще это оказывается в докухе есть: http://aws.rubyonrails.com/classes/ActionWebService/Container/Delegated/ClassMethods.html |
|