During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/sam/Documents/freenet/nifi-automation/src/compose.py", line 122, in <module>
compose_services(env_config, types, NIFI_VERSION, False, bench)
File "/home/sam/Documents/freenet/nifi-automation/src/compose.py", line 11, in compose_services
pg = ProcessorGroups(NIFI_VERSION)
File "/home/sam/Documents/freenet/nifi-automation/src/components/processor_group.py", line 9, in __init__
processor_groups = nipyapi.canvas.list_all_process_groups(pg_id='root')
File "/home/sam/Documents/freenet/nifi-automation/venv/lib/python3.6/site-packages/nipyapi/canvas.py", line 178, in list_all_process_groups
root_flow = recurse_flow(pg_id)
File "/home/sam/Documents/freenet/nifi-automation/venv/lib/python3.6/site-packages/nipyapi/canvas.py", line 64, in recurse_flow
return _walk_flow(get_flow(pg_id))
File "/home/sam/Documents/freenet/nifi-automation/venv/lib/python3.6/site-packages/nipyapi/canvas.py", line 85, in get_flow
raise ValueError(err.body)
ValueError: No applicable policies could be found. Contact the system administrator.
Process finished with exit code 1我有几个NIFI自动化脚本,当我在不安全的集群(localhost/或什么地方)上运行时,这些脚本运行得非常好,但是当我运行在KNOX网关后面的URL时,我会遇到这个错误。我可以在nipyapi.access_api类中看到一些函数
我不明白如何使用这些或与类中的任何其他函数相结合来克服这一问题?知道吗?
EDIT1:首先使用security.py函数的 IM是secure_login。在文档中,它的书面登录需要通过https建立一个安全的连接。在调用此方法之前,必须指定主机并配置SSLContext (如果需要的话)。set_service_ssl_context这个函数有它的用途,但是我不确定我是否需要它,对于单向的TSL,它是不需要的。
但我有点困惑。我有两个URl,一个是带有LDAP登录的Knox url,另一个是直接URI(尽管它也重定向到Knox序列),当我给出Knox时,我得到一个与直接URI不同的错误。
从我得到的直接URI
File /nipyapi/security.py", line 130, in service_login
username=username, password=password)
nipyapi.nifi.rest.ApiException: (409)
Reason: Conflict
HTTP response body: Username/Password login not supported by this NiFi.如果是Knox,它会在相同的行上抛出相同的连接错误异常,但是
nipyapi.nifi.rest.ApiException: (404)
Reason: Not Found所以我假设我必须使用直接网址。第二,为什么它说用户不为。我可以手动登录。从LDAP序列。我的当前请求是以匿名用户的身份进行的,所以我将使用Certs,并尝试使用PEM文件的set_service_ssl_context函数。
顺便说一下,下面是两个urls。
"nifi_host":".net:8443/nifi-api",直接网址“
"nifi_host":"-sso/nifi-api",knox url
编辑2: --我的请求在服务器上被匿名接收,即使有以下代码。
nipyapi.security.set_service_ssl_context(service='nifi', ca_file=None, client_cert_file="bi.keystore", client_key_file=None, client_key_password="infraop6043")
nipyapi.security.service_login(username='myuser', password='mypass')这里给出了连接错误
nipyapi.nifi.AccessApi().create_access_token( username=username,password=password)并显示此错误HTTP响应体:用户名/密码登录,该NiFi不支持
我不知道如何正确地使用set_service_ssl_context。也许我应该直接使用letsencrypt.org ca:letscrypt.org/certs/isrgrootx1.pem.txt或我的本地系统ca-certs,而不是使用bi.keystore。
我的工具箱-cli属性文件是
*baseUrl=https://svc-hadoop-utilities-pre-c3-02.jamba.net:18443
keystore=/home/jread/nifi-toolkit/bi.keystore
keystoreType=JKS
keystorePasswd=infraop6043
keyPasswd=
truststore=/usr/lib/java/jre/lib/security/cacerts
truststoreType=JKS
truststorePasswd=changeit
proxiedEntity=CN=bijobs.jamba.net*
发布于 2018-12-11 16:18:16
您拥有的错误消息“无法找到适用的策略。请与系统管理员联系。”通常是由游侠插件生成的,当启用了安全性,并且不允许与您连接的用户时,我还没有看到Knox生成它。
当您为NiFi启用Knox时,您能确认没有启用没有策略的游侠吗?这是您正在收到的错误消息?如果您查看nifi-app.log,我怀疑您会看到同样的错误正在产生,这就意味着NiPyAPi只是在传输NiFi由于不完整的安全设置而生成的错误。
https://stackoverflow.com/questions/53725827
复制相似问题