[wip] Add auth inputs for proxy settings, fix some broken logic

This commit is contained in:
William Wernert
2021-03-03 09:51:38 -05:00
parent de77d3ebc9
commit 2b94fa366e
3 changed files with 49 additions and 2 deletions

View File

@@ -346,7 +346,7 @@ valid_proxy() {
local has_prefix=false local has_prefix=false
for prefix in "${url_prefixes[@]}"; do for prefix in "${url_prefixes[@]}"; do
echo "$proxy" | grep "$prefix" && has_prefix=true && proxy=${proxy#"$prefix"} echo "$proxy" | grep "$prefix" && has_prefix=true && proxy=${proxy#"$prefix"} && break
done done
local url local url
@@ -357,7 +357,7 @@ valid_proxy() {
valid_url=false valid_url=false
fi fi
[[ $has_prefix == true ]] && [[ $valid_url ]] && return 0 || return 1 [[ $has_prefix == true ]] && [[ $valid_url == true ]] && return 0 || return 1
} }
valid_string() { valid_string() {

View File

@@ -537,12 +537,41 @@ collect_patch_schedule_name_import() {
collect_proxy() { collect_proxy() {
if whiptail_proxy_ask; then if whiptail_proxy_ask; then
whiptail_proxy_addr whiptail_proxy_addr
while ! valid_proxy "$proxy_addr"; do while ! valid_proxy "$proxy_addr"; do
whiptail_invalid_input whiptail_invalid_input
whiptail_proxy_addr whiptail_proxy_addr
done done
if whiptail_proxy_auth_ask; then
whiptail_proxy_auth_user
while ! valid_string "$proxy_user"; do
whiptail_invalid_input
whiptail_proxy_auth_user
done
whiptail_proxy_auth_pass
while ! valid_string "$proxy_pass"; do
whiptail_invalid_input
whiptail_proxy_auth_pass
done
local url_prefixes=( 'http://' 'https://' )
for prefix in "${url_prefixes[@]}"; do
if echo "$proxy_addr" | grep "$prefix"; then
proxy=${proxy_addr#"$prefix"}
proxy="${prefix}${proxy_user}:${proxy_pass}@${proxy}"
break
fi
done
else
proxy="$proxy_addr"
fi
export proxy
fi fi
} }

View File

@@ -1231,6 +1231,24 @@ whiptail_proxy_addr() {
whiptail_check_exitstatus $exitstatus whiptail_check_exitstatus $exitstatus
} }
whiptail_proxy_auth_ask() {
[ -n "$TESTING" ] && return
whiptail --title "Security Onion Setup" --yesno "Does your proxy require authentication?" 7 60
}
whiptail_proxy_auth_user() {
[ -n "$TESTING" ] && return
proxy_user=$(whiptail --title "Security Onion Setup" --inputbox "Please input the proxy user:" 8 60 3>&1 1>&2 2>&3)
}
whiptail_proxy_auth_pass() {
[ -n "$TESTING" ] && return
proxy_pass=$(whiptail --title "Security Onion Setup" --inputbox "Please input the proxy password:" 8 60 3>&1 1>&2 2>&3)
}
whiptail_requirements_error() { whiptail_requirements_error() {
local requirement_needed=$1 local requirement_needed=$1