Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Tristan Cavelier
slapos
Commits
6fdbae64
Commit
6fdbae64
authored
Jul 28, 2014
by
Cédric Le Ninivin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
monitor: Configurable and protected rewrite rule for local service
parent
70d9bd90
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
32 additions
and
5 deletions
+32
-5
stack/monitor/buildout.cfg
stack/monitor/buildout.cfg
+4
-4
stack/monitor/cgi-httpd.conf.in
stack/monitor/cgi-httpd.conf.in
+16
-0
stack/monitor/monitor.cfg.in
stack/monitor/monitor.cfg.in
+4
-0
stack/monitor/webfile-directory/index.cgi.in
stack/monitor/webfile-directory/index.cgi.in
+3
-1
stack/monitor/webfile-directory/index.html.jinja2
stack/monitor/webfile-directory/index.html.jinja2
+5
-0
No files found.
stack/monitor/buildout.cfg
View file @
6fdbae64
...
@@ -41,7 +41,7 @@ recipe = slapos.recipe.template
...
@@ -41,7 +41,7 @@ recipe = slapos.recipe.template
url = ${:_profile_base_location_}/monitor.cfg.in
url = ${:_profile_base_location_}/monitor.cfg.in
output = ${buildout:directory}/monitor.cfg
output = ${buildout:directory}/monitor.cfg
filename = monitor.cfg
filename = monitor.cfg
md5sum =
852a0e205e005969547cce8192e531cd
md5sum =
20dc52c906e03a7c0b1234db7f999853
mode = 0644
mode = 0644
[monitor-bin]
[monitor-bin]
...
@@ -57,7 +57,7 @@ mode = 0644
...
@@ -57,7 +57,7 @@ mode = 0644
recipe = hexagonit.recipe.download
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/${:filename}
url = ${:_profile_base_location_}/${:filename}
download-only = true
download-only = true
md5sum =
335e618be6bbe02328cd3aaa30e29d9c
md5sum =
2d48f8b8e01fa0fdde964ed1c1547f05
filename = cgi-httpd.conf.in
filename = cgi-httpd.conf.in
mode = 0644
mode = 0644
...
@@ -65,7 +65,7 @@ mode = 0644
...
@@ -65,7 +65,7 @@ mode = 0644
recipe = hexagonit.recipe.download
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/webfile-directory/${:filename}
url = ${:_profile_base_location_}/webfile-directory/${:filename}
download-only = true
download-only = true
md5sum =
af1adc107b73290afb98d011f7307de1
md5sum =
e759977b21c70213daa4c2701f2c2078
destination = ${buildout:directory}/parts/monitor-index
destination = ${buildout:directory}/parts/monitor-index
filename = index.cgi.in
filename = index.cgi.in
mode = 0644
mode = 0644
...
@@ -75,7 +75,7 @@ recipe = hexagonit.recipe.download
...
@@ -75,7 +75,7 @@ recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/webfile-directory/${:filename}
url = ${:_profile_base_location_}/webfile-directory/${:filename}
download-only = true
download-only = true
destination = ${buildout:directory}/parts/monitor-template-index
destination = ${buildout:directory}/parts/monitor-template-index
md5sum =
05051a2ff81ce7dc2eef3106d75b33f9
md5sum =
7400c8cfa16a15a0d41f512b8bbb1581
filename = index.html.jinja2
filename = index.html.jinja2
mode = 0644
mode = 0644
...
...
stack/monitor/cgi-httpd.conf.in
View file @
6fdbae64
...
@@ -21,6 +21,9 @@ LoadModule autoindex_module modules/mod_autoindex.so
...
@@ -21,6 +21,9 @@ LoadModule autoindex_module modules/mod_autoindex.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
# SSL Configuration
# SSL Configuration
<IfDefine !SSLConfigured>
<IfDefine !SSLConfigured>
...
@@ -61,3 +64,16 @@ Require valid-user
...
@@ -61,3 +64,16 @@ Require valid-user
Options Indexes FollowSymLinks
Options Indexes FollowSymLinks
Satisfy all
Satisfy all
</Directory>
</Directory>
<Location /rewrite>
AuthType Basic
AuthName "Private access"
AuthUserFile "{{ monitor_parameters.get('htaccess-file') }}"
Require valid-user
</Location>
ProxyVia On
RewriteEngine On
{% for key, value in monitor_rewrite_rule.iteritems() %}
RewriteRule ^/rewrite/{{ key }}($|/.*) {{ value }}/$1 [P,L]
{% endfor %}
stack/monitor/monitor.cfg.in
View file @
6fdbae64
...
@@ -105,6 +105,7 @@ context =
...
@@ -105,6 +105,7 @@ context =
key apache_update_command :update-apache-access
key apache_update_command :update-apache-access
raw extra_eggs_interpreter ${buildout:directory}/bin/${extra-eggs:interpreter}
raw extra_eggs_interpreter ${buildout:directory}/bin/${extra-eggs:interpreter}
raw default_page /static/welcome.html
raw default_page /static/welcome.html
section rewrite_element monitor-rewrite-rule
[deploy-index-template]
[deploy-index-template]
recipe = hexagonit.recipe.download
recipe = hexagonit.recipe.download
...
@@ -234,6 +235,8 @@ status-history-length = 5
...
@@ -234,6 +235,8 @@ status-history-length = 5
recipe = slapos.cookbook:zero-knowledge.read
recipe = slapos.cookbook:zero-knowledge.read
filename = $${public:filename}
filename = $${public:filename}
[monitor-rewrite-rule]
# XXX could it be something lighter?
# XXX could it be something lighter?
[monitor-httpd-configuration]
[monitor-httpd-configuration]
pid-file = $${monitor-directory:run}/cgi-httpd.pid
pid-file = $${monitor-directory:run}/cgi-httpd.pid
...
@@ -252,6 +255,7 @@ context =
...
@@ -252,6 +255,7 @@ context =
section directory monitor-directory
section directory monitor-directory
section monitor_parameters monitor-parameters
section monitor_parameters monitor-parameters
section httpd_configuration monitor-httpd-configuration
section httpd_configuration monitor-httpd-configuration
section monitor_rewrite_rule monitor-rewrite-rule
[cgi-httpd-wrapper]
[cgi-httpd-wrapper]
recipe = slapos.cookbook:wrapper
recipe = slapos.cookbook:wrapper
...
...
stack/monitor/webfile-directory/index.cgi.in
View file @
6fdbae64
...
@@ -23,6 +23,8 @@ monitor_password_script_path = "{{ monitor_password_script_path }}"
...
@@ -23,6 +23,8 @@ monitor_password_script_path = "{{ monitor_password_script_path }}"
monitor_apache_password_command = "{{ apache_update_command }}"
monitor_apache_password_command = "{{ apache_update_command }}"
monitor_rewrite = "{{ ' '.join(rewrite_element.keys()) }}"
########
########
# Password functions
# Password functions
#######
#######
...
@@ -185,4 +187,4 @@ else:
...
@@ -185,4 +187,4 @@ else:
else:
else:
html_base = jinja2.Template(open('{{ index_template }}').read())
html_base = jinja2.Template(open('{{ index_template }}').read())
print
print
print html_base.render(tree=make_menu(), default_page="{{ default_page }}")
print html_base.render(tree=make_menu(), default_page="{{ default_page }}"
, monitor_rewrite=monitor_rewrite
)
stack/monitor/webfile-directory/index.html.jinja2
View file @
6fdbae64
...
@@ -19,6 +19,11 @@
...
@@ -19,6 +19,11 @@
{% endfor %}
{% endfor %}
<li
class=
"pure-menu-heading category"
>
Files
</li>
<li
class=
"pure-menu-heading category"
>
Files
</li>
<li><a
href=
"./private/"
class=
"link"
>
User: admin
</br>
Password is yours
</a></li>
<li><a
href=
"./private/"
class=
"link"
>
User: admin
</br>
Password is yours
</a></li>
<li
class=
"pure-menu-heading category"
>
Local Service
</li>
{% set rewrite_list = monitor_rewrite.split() %}
{% for path in rewrite_list %}
<li><a
href=
"./rewrite/{{path}}/"
class=
"link"
>
{{path}}
</a></li>
{% endfor %}
</ul>
</ul>
</div>
</div>
</div>
</div>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment