summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorblackst0ne <blackst0ne.ru@gmail.com>2018-06-20 14:18:16 +1100
committerblackst0ne <blackst0ne.ru@gmail.com>2018-06-20 14:18:16 +1100
commitd4f6e1f21c40c729d5ed3a3f02d6a84777a40163 (patch)
tree522322b4a118db52df1d444ee35d36bdb20c0f56
parent7a633e08556c1de1f6bb35c85f24c844ed4ad5c8 (diff)
downloadgitlab-ce-blackst0ne-rails5-found-new-routes-that-could-cause-conflicts-with-existing-namespaced-routes.tar.gz
Since Rails 5.0 the new framework has been added. It's called ActionCable. It brings WebSockets support to rails applications. By default the mountpoint of WebSocket requests is `/cable` [1]. GitLab allows using top level names as namespaces or usernames. For example, `gitlab.com/cable` at this moment leads to a user with the nickname `cable`. This commit changes ActionCable's mountpoint to a reserved top level word `-`. This is just a stub and should not be be used in real work. Please set correct mountpoints for each environments when configuring ActionCable for real using. [1]: https://github.com/rails/rails/blob/5-0-stable/actioncable/lib/action_cable.rb#L38
-rw-r--r--changelogs/unreleased/blackst0ne-rails5-found-new-routes-that-could-cause-conflicts-with-existing-namespaced-routes.yml5
-rw-r--r--config/application.rb7
2 files changed, 12 insertions, 0 deletions
diff --git a/changelogs/unreleased/blackst0ne-rails5-found-new-routes-that-could-cause-conflicts-with-existing-namespaced-routes.yml b/changelogs/unreleased/blackst0ne-rails5-found-new-routes-that-could-cause-conflicts-with-existing-namespaced-routes.yml
new file mode 100644
index 00000000000..c8d916af824
--- /dev/null
+++ b/changelogs/unreleased/blackst0ne-rails5-found-new-routes-that-could-cause-conflicts-with-existing-namespaced-routes.yml
@@ -0,0 +1,5 @@
+---
+title: "[Rails5] Fix ActionCable '/cable' mountpoint conflict"
+merge_request: 20015
+author: "@blackst0ne"
+type: fixed
diff --git a/config/application.rb b/config/application.rb
index 95f6d2c9af1..385eb65e7f4 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -57,6 +57,13 @@ module Gitlab
# Configure the default encoding used in templates for Ruby 1.9.
config.encoding = "utf-8"
+ # ActionCable mount point.
+ # The default Rails' mount point is `/cable` which may conflict with existing
+ # namespaces/users.
+ # https://github.com/rails/rails/blob/5-0-stable/actioncable/lib/action_cable.rb#L38
+ # Please change this value when configuring ActionCable for real usage.
+ config.action_cable.mount_path = "-" if rails5?
+
# Configure sensitive parameters which will be filtered from the log file.
#
# Parameters filtered: