| /** |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| #include "controllers/ProxyConfigurationService.h" |
| |
| #include "utils/ParsingUtils.h" |
| #include "minifi-cpp/Exception.h" |
| #include "core/Resource.h" |
| |
| namespace org::apache::nifi::minifi::controllers { |
| |
| void ProxyConfigurationService::initialize() { |
| setSupportedProperties(Properties); |
| } |
| |
| void ProxyConfigurationService::onEnable() { |
| std::lock_guard lock(configuration_mutex_); |
| proxy_configuration_.proxy_type = magic_enum::enum_cast<ProxyType>(getProperty(ProxyTypeProperty.name).value_or("HTTP")).value_or(ProxyType::HTTP); |
| proxy_configuration_.proxy_host = getProperty(ProxyServerHost.name).value_or(""); |
| if (proxy_configuration_.proxy_host.empty()) { |
| logger_->log_error("Proxy Server Host is required"); |
| throw minifi::Exception(ExceptionType::PROCESS_SCHEDULE_EXCEPTION, "Proxy Server Host is required"); |
| } |
| if (auto proxy_port = getProperty(ProxyServerPort.name) | utils::andThen(parsing::parseIntegral<uint16_t>)) { |
| proxy_configuration_.proxy_port = *proxy_port; |
| } |
| std::string proxy_user; |
| if (auto proxy_user_prop = getProperty(ProxyUserName.name)) { |
| proxy_user = *proxy_user_prop; |
| } |
| if (auto proxy_password = getProperty(ProxyUserPassword.name); !proxy_user.empty() && proxy_password) { |
| proxy_configuration_.proxy_credentials = BasicAuthCredentials{.username = proxy_user, .password = *proxy_password}; |
| } |
| } |
| |
| REGISTER_RESOURCE(ProxyConfigurationService, ControllerService); |
| |
| } // namespace org::apache::nifi::minifi::controllers |