Fresh Rails 4.2设置.我想抑制长错误回溯.在下面的回溯日志中,第一行对我来说已经足够了,接下来的4行可以删除
ActionController::RoutingError (No route matches [GET] "/user"):
actionpack (4.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
web-console (2.1.2) lib/web_console/middleware.rb:37:in `call'
actionpack (4.2.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.1) lib/rails/rack/logger.rb:38:in `call_app'
Run Code Online (Sandbox Code Playgroud)
我添加了一个新的消音器 backtrace_silencers.rb
# config/initializers/backtrace_silencers.rb
Rails.backtrace_cleaner.add_silencer { |line| line =~ /lib/ }
Run Code Online (Sandbox Code Playgroud)
服务器重启后 - 没有任何反应,我仍然得到相同的回溯日志.(/lib/应该删除每一行匹配:http://api.rubyonrails.org/classes/ActiveSupport/BacktraceCleaner.htm)
完整性检查:
> line = "actionpack (4.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'"
=> "actionpack (4.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'"
> line =~ /lib/
=> 19
Run Code Online (Sandbox Code Playgroud)
但过滤器工作:
# config/initializers/backtrace_silencers.rb
Rails.backtrace_cleaner.add_filter { |line| line.gsub('lib', 'yeah!') }
Run Code Online (Sandbox Code Playgroud)
现在回溯看起来像这样:
ActionController::RoutingError (No route matches [GET] "/user"): …Run Code Online (Sandbox Code Playgroud) 用户正在相互发送消息,并通过Rails应用程序为其他用户发布私人信息。
目标是保护消息的安全,因此系统管理员和数据库泄漏都将无法破坏数据。使用接收方密钥进行Javascript客户端加密,加密的数据存储在数据库中,并在接收方进行解密。密钥未存储在系统中。
有道理吗?有解决方案吗?非常感谢!
更新:我的意思是不对称加密。每个用户有两个密钥:一个用于加密的公用密钥,一个用于解密的专用密钥。以及应用程序本身的密码。用户使用他的密码登录,创建一条消息,该消息是使用收件人的公用密钥(存储在系统中)加密的客户端,并保存在数据库中。收件人使用他的密码登录,然后输入他的私钥来解码消息。解密也是客户端,不将私钥发送到服务器。
多域应用程序。本地使用 POW 服务器。黄瓜测试
在我设置 app_host 的步骤之一(子域属于帐户并每次都创建):
def set_current_subdomain(subdomain)
Capybara.app_host = "http://#{subdomain}.example.com:#{Capybara.server_port}"
end
Run Code Online (Sandbox Code Playgroud)
在黄瓜设置中:
Capybara.run_server = true
Capybara.server_port = 8200
Capybara.javascript_driver = :selenium #default driver when you using @javascript tag
Capybara.app = Rack::ShowExceptions.new(MyApp::Application)
Capybara.default_driver = :rack_test
Run Code Online (Sandbox Code Playgroud)
步骤示例
visit(new_user_session_url(subdomain: @account.subdomain, port: Capybara.server_port))
Run Code Online (Sandbox Code Playgroud)
黄瓜测试通过 :rack_test 通过,但通过 :webkit 或 :selenium 失败
Unable to load URL: http://veumbogan8d11d7feca.example.com:8200/signin because of error loading http://veumbogan8d11d7feca.example.com:8200/signin: Unknown error (Capybara::Webkit::InvalidResponseError)
Run Code Online (Sandbox Code Playgroud)
webkit_debug 输出:
Finished "EnableLogging" with response "Success()"
Wrote response true ""
Received "Visit"
Started "Visit"
Load started
"Visit" started page …Run Code Online (Sandbox Code Playgroud)