mirror of https://github.com/Aidaho12/haproxy-wi
parent
4d0d94fca9
commit
a27913d0c6
18
app/add.py
18
app/add.py
|
@ -133,10 +133,15 @@ elif form.getvalue('mode') is not None:
|
|||
options_split += " option forceclose\n"
|
||||
elif force_close == "3":
|
||||
options_split += " option http-pretend-keepalive\n"
|
||||
|
||||
|
||||
if form.getvalue('whitelist') is not None:
|
||||
options_split += " tcp-request connection accept if { src -f " + haproxy_dir + "/white/" + form.getvalue(
|
||||
'whitelist') + " }\n"
|
||||
|
||||
if form.getvalue('blacklist') is not None:
|
||||
options_split += " tcp-request connection reject if { src -f "+haproxy_dir+"/black/"+form.getvalue('blacklist')+" }\n"
|
||||
|
||||
options_split += " tcp-request connection reject if { src -f " + haproxy_dir + "/black/" + form.getvalue(
|
||||
'blacklist') + " }\n"
|
||||
|
||||
if form.getvalue('cookie'):
|
||||
cookie = " cookie "+form.getvalue('cookie_name')
|
||||
if form.getvalue('cookie_domain'):
|
||||
|
@ -220,6 +225,13 @@ elif form.getvalue('mode') is not None:
|
|||
|
||||
i += 1
|
||||
|
||||
if form.getvalue('circuit_breaking') == "1":
|
||||
observe = 'observe ' + form.getvalue('circuit_breaking_observe')
|
||||
error_limit = ' error-limit ' + form.getvalue('circuit_breaking_error_limit')
|
||||
circuit_breaking_on_error = ' on-error ' + form.getvalue('circuit_breaking_on_error')
|
||||
default_server = ' default-server ' + observe + error_limit + circuit_breaking_on_error + '\n'
|
||||
servers_split += default_server
|
||||
|
||||
if form.getvalue('servers') is not None:
|
||||
servers = form.getlist('servers')
|
||||
server_port = form.getlist('server_port')
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
'option ldap-check':'Check a LDAP service', 'option mysql-check':'Check a MySql Service',
|
||||
'option pgsql-check':'Check a PgSQL Service', 'option redis-check': 'Check a Redis Service',
|
||||
'option smtpchk':'Check a SMTP service'} %}
|
||||
{% set observe = {'layer7':'layer7', 'layer4': 'layer4'} %}
|
||||
{% set on_error = {'mark-down':'mark-down', 'fastinter': 'fastinter', 'fail-check':'fail-check',
|
||||
'sudden-death':'sudden-death'} %}
|
||||
|
||||
{% set if_values = dict() %}
|
||||
{% set if_values = {'1':'Host name starts with','2':'Host name ends with','3':'Path starts with','4':'Path ends with', '6': 'Src ip'} %}
|
||||
|
@ -156,7 +159,8 @@
|
|||
<span class="controlgroup">
|
||||
{{ checkbox('slow_atack', title='Slow attack protect', desc='Slow attack') }}
|
||||
{{ checkbox('ddos', title='DDOS attack protect', desc='DDOS') }}
|
||||
{{ checkbox('blacklist_checkbox', title='Use blacklist', desc='Blacklist') }}
|
||||
{{ checkbox('whitelist_checkbox', title='Add whitelist', desc='Whitelist') }}
|
||||
{{ checkbox('blacklist_checkbox', title='Add blacklist', desc='Blacklist') }}
|
||||
{{ checkbox('waf', title='Web application firewall', desc='WAF', value='1') }}
|
||||
{{ checkbox('antibot', title='Antibot Protection', desc='Antibot', value='1') }}
|
||||
</span>
|
||||
|
@ -164,6 +168,10 @@
|
|||
<br /><span class="tooltip tooltipTop">Enter a blacklist name, or press the "down" button:</span><br />
|
||||
{{ input('blacklist-hide-input', size='39', name="blacklist", placeholder="blacklist.lst") }}
|
||||
</div>
|
||||
<div id="whitelist-hide" style="display: none;">
|
||||
<br /><span class="tooltip tooltipTop">Enter a whitelist name, or press the "down" button::</span><br />
|
||||
{{ input('whitelist-hide-input', size='39', name="whitelist", placeholder="whitelist.lst") }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="advance">
|
||||
|
@ -241,6 +249,17 @@
|
|||
{% set values = {'4':'4','5':'5','6':'6'} %}
|
||||
{{ select('fall-listen', name='fall', values=values, first='fall', class='force_close') }}
|
||||
</div>
|
||||
<div style="display: block">
|
||||
{{ checkbox('circuit_breaking_listen', name="circuit_breaking", desc='Circuit Breaking', title='Enable Circuit Breaking', value='1') }}
|
||||
</div>
|
||||
<div id="circuit_breaking_listen_div" style="display: none">
|
||||
Observe:
|
||||
{{ select('circuit_breaking_observe', values=observe, class='force_close') }}
|
||||
error-limit: {{ input('circuit_breaking_error_limit', type='number', value='50', style='width: 50px;') }}
|
||||
on-error:
|
||||
{{ select('circuit_breaking_on_error', values=on_error, class='force_close') }}
|
||||
<div class="tooltip tooltipTop">Read more about Circuit Breaking <a href="https://haproxy-wi.org/description.py?description=circuit_breaking" title="Circuit Breaking" target="_blank">here</a></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="advance-show">
|
||||
|
@ -369,7 +388,8 @@
|
|||
<span class="controlgroup">
|
||||
{{ checkbox('slow_atack1', title='Slow attack protect', desc='Slow attack') }}
|
||||
{{ checkbox('ddos1', title='DDOS attack protect', desc='DDOS') }}
|
||||
{{ checkbox('blacklist_checkbox1', title='Use blacklist', desc='Blacklist') }}
|
||||
{{ checkbox('whitelist_checkbox1', title='Add whitelist', desc='Whitelist') }}
|
||||
{{ checkbox('blacklist_checkbox1', title='Add blacklist', desc='Blacklist') }}
|
||||
{{ checkbox('waf2', name='waf', title='Web application firewall', desc='WAF', value='1') }}
|
||||
{{ checkbox('antibot1', title='Antibot Protection', desc='Antibot', value='1') }}
|
||||
</span>
|
||||
|
@ -377,6 +397,10 @@
|
|||
<br /><span class="tooltip tooltipTop">Enter a blacklist name, or press the "down" button::</span><br />
|
||||
{{ input('blacklist-hide-input1', size='39', name="blacklist", placeholder="blacklist.lst") }}
|
||||
</div>
|
||||
<div id="whitelist-hide1" style="display: none;">
|
||||
<br /><span class="tooltip tooltipTop">Enter a whitelist name, or press the "down" button::</span><br />
|
||||
{{ input('whitelist-hide-input1', size='39', name="whitelist", placeholder="whitelist.lst") }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="advance">
|
||||
|
@ -607,6 +631,17 @@
|
|||
{% set values = {'4':'4','5':'5','6':'6'} %}
|
||||
{{ select('fall-backend', name='fall', values=values, first='fall', class='force_close') }}
|
||||
</div>
|
||||
<div style="display: block">
|
||||
{{ checkbox('circuit_breaking_backend', name="circuit_breaking", desc='Circuit Breaking', title='Enable Circuit Breaking', value='1') }}
|
||||
</div>
|
||||
<div id="circuit_breaking_backend_div" style="display: none">
|
||||
Observe:
|
||||
{{ select('circuit_breaking_observe', values=observe, class='force_close') }}
|
||||
error-limit: {{ input('circuit_breaking_error_limit', type='number', value='50', style='width: 50px;') }}
|
||||
on-error:
|
||||
{{ select('circuit_breaking_on_error', values=on_error, class='force_close') }}
|
||||
<div class="tooltip tooltipTop">Read more about Circuit Breaking <a href="https://haproxy-wi.org/description.py?description=circuit_breaking" title="Circuit Breaking" target="_blank">here</a></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="advance-show">
|
||||
|
|
111
inc/add.js
111
inc/add.js
|
@ -116,24 +116,23 @@ $( function() {
|
|||
} else {
|
||||
$( "#controlgroup-listen" ).hide( "fast" );
|
||||
}
|
||||
$( "#check-servers-listen" ).click( function(){
|
||||
if ($('#check-servers-listen').is(':checked')) {
|
||||
$( "#rise-listen" ).attr('required',true);
|
||||
$( "#fall-listen" ).attr('required',true);
|
||||
$( "#inter-listen" ).attr('required',true);
|
||||
$( "#inter-listen" ).selectmenu( "option", "disabled", false );
|
||||
$( "#fall-listen" ).selectmenu( "option", "disabled", false );
|
||||
$( "#rise-listen" ).selectmenu( "option", "disabled", false );
|
||||
} else {
|
||||
$( "#rise-listen" ).attr('required',false);
|
||||
$( "#fall-listen" ).attr('required',false);
|
||||
$( "#inter-listen" ).attr('required',false);
|
||||
$( "#inter-listen" ).selectmenu( "option", "disabled", true );
|
||||
$( "#fall-listen" ).selectmenu( "option", "disabled", true );
|
||||
$( "#rise-listen" ).selectmenu( "option", "disabled", true );
|
||||
}
|
||||
});
|
||||
|
||||
$( "#check-servers-listen" ).click( function(){
|
||||
if ($('#check-servers-listen').is(':checked')) {
|
||||
$( "#rise-listen" ).attr('required',true);
|
||||
$( "#fall-listen" ).attr('required',true);
|
||||
$( "#inter-listen" ).attr('required',true);
|
||||
$( "#inter-listen" ).selectmenu( "option", "disabled", false );
|
||||
$( "#fall-listen" ).selectmenu( "option", "disabled", false );
|
||||
$( "#rise-listen" ).selectmenu( "option", "disabled", false );
|
||||
} else {
|
||||
$( "#rise-listen" ).attr('required',false);
|
||||
$( "#fall-listen" ).attr('required',false);
|
||||
$( "#inter-listen" ).attr('required',false);
|
||||
$( "#inter-listen" ).selectmenu( "option", "disabled", true );
|
||||
$( "#fall-listen" ).selectmenu( "option", "disabled", true );
|
||||
$( "#rise-listen" ).selectmenu( "option", "disabled", true );
|
||||
}
|
||||
});
|
||||
});
|
||||
$( "#controlgroup-backend-show" ).click( function(){
|
||||
if ($('#controlgroup-backend-show').is(':checked')) {
|
||||
|
@ -147,6 +146,20 @@ $( function() {
|
|||
$( "#controlgroup-backend" ).hide( "fast" );
|
||||
}
|
||||
});
|
||||
$( "#circuit_breaking_listen" ).click( function(){
|
||||
if ($('#circuit_breaking_listen').is(':checked')) {
|
||||
$( "#circuit_breaking_listen_div" ).show( "fast" );
|
||||
} else {
|
||||
$( "#circuit_breaking_listen_div" ).hide( "fast" );
|
||||
}
|
||||
});
|
||||
$( "#circuit_breaking_backend" ).click( function(){
|
||||
if ($('#circuit_breaking_backend').is(':checked')) {
|
||||
$( "#circuit_breaking_backend_div" ).show( "fast" );
|
||||
} else {
|
||||
$( "#circuit_breaking_backend_div" ).hide( "fast" );
|
||||
}
|
||||
});
|
||||
$( "#cookie" ).click( function(){
|
||||
if ($('#cookie').is(':checked')) {
|
||||
$("#cookie_name" ).attr('required',true);
|
||||
|
@ -334,6 +347,50 @@ $( function() {
|
|||
autoFocus: true,
|
||||
minLength: -1
|
||||
});
|
||||
$( "#whitelist-hide-input" ).autocomplete({
|
||||
source: function( request, response ) {
|
||||
if ( request.term == "" ) {
|
||||
request.term = 1
|
||||
}
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
get_lists: request.term,
|
||||
color: "white",
|
||||
group: $("#group").val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g,' ');
|
||||
response(data.split(" "));
|
||||
}
|
||||
} );
|
||||
},
|
||||
autoFocus: true,
|
||||
minLength: -1
|
||||
});
|
||||
$( "#whitelist-hide-input1" ).autocomplete({
|
||||
source: function( request, response ) {
|
||||
if ( request.term == "" ) {
|
||||
request.term = 1
|
||||
}
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
get_lists: request.term,
|
||||
color: "white",
|
||||
group: $("#group").val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g,' ');
|
||||
response(data.split(" "));
|
||||
}
|
||||
} );
|
||||
},
|
||||
autoFocus: true,
|
||||
minLength: -1
|
||||
});
|
||||
$( "#new-option" ).autocomplete({
|
||||
source: availableTags,
|
||||
autoFocus: true,
|
||||
|
@ -645,6 +702,24 @@ $( function() {
|
|||
$( "#blacklist-hide-input1" ).prop('required',false);
|
||||
}
|
||||
});
|
||||
$( "#whitelist_checkbox" ).click( function(){
|
||||
if ($('#whitelist_checkbox').is(':checked')) {
|
||||
$( "#whitelist-hide" ).show( "fast" );
|
||||
$( "#whitelist-hide-input" ).attr('required',true);
|
||||
} else {
|
||||
$( "#whitelist-hide" ).hide( "fast" );
|
||||
$( "#whitelist-hide-input" ).prop('required',false);
|
||||
}
|
||||
});
|
||||
$( "#whitelist_checkbox1" ).click( function(){
|
||||
if ($('#whitelist_checkbox1').is(':checked')) {
|
||||
$( "#whitelist-hide1" ).show( "fast" );
|
||||
$( "#whitelist-hide-input1" ).attr('required',true);
|
||||
} else {
|
||||
$( "#whitelist-hide1" ).hide( "fast" );
|
||||
$( "#whitelist-hide-input1" ).prop('required',false);
|
||||
}
|
||||
});
|
||||
$( ":regex(id, template)" ).click( function(){
|
||||
if ($(':regex(id, template)').is(':checked')) {
|
||||
$( ".prefix" ).show( "fast" );
|
||||
|
|
Loading…
Reference in New Issue