7923 [ZAP-ProxyThread-4] INFO org.zaproxy.zap.authentication.ScriptBasedAuthenticationMethodType - Loaded script:PRMAUTH.py
And throw an error:
7924 [ZAP-ProxyThread-4] ERROR org.zaproxy.zap.authentication.ScriptBasedAuthenticationMethodType - Unable to load Script Based Authentication method. The script PRMAUTH.py does not properly implement the Authentication Script interface.
7987 [ZAP-ProxyThread-4] ERROR org.zaproxy.zap.extension.api.ContextAPI - null
java.lang.NullPointerException: null
at org.zaproxy.zap.utils.EncodingUtils.mapToString(EncodingUtils.java:31) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.zaproxy.zap.authentication.ScriptBasedAuthenticationMethodType.persistMethodToSession(ScriptBasedAuthenticationMethodType.java:757) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.zaproxy.zap.extension.authentication.ExtensionAuthentication.persistContextData(ExtensionAuthentication.java:407) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.parosproxy.paros.model.Model.saveContext(Model.java:547) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.parosproxy.paros.model.Session.saveContext(Session.java:1306) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.parosproxy.paros.model.Session.importContext(Session.java:1605) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.zaproxy.zap.extension.api.ContextAPI.handleApiAction(ContextAPI.java:279) [zap-D-2021-06-07.jar:D-2021-06-07]
at org.zaproxy.zap.extension.api.API.handleApiRequest(API.java:507) [zap-D-2021-06-07.jar:D-2021-06-07]
at org.parosproxy.paros.core.proxy.ProxyThread.processHttp(ProxyThread.java:497) [zap-D-2021-06-07.jar:D-2021-06-07]
at org.parosproxy.paros.core.proxy.ProxyThread.run(ProxyThread.java:333) [zap-D-2021-06-07.jar:D-2021-06-07]
at java.lang.Thread.run(Thread.java:829) [?:?]
What I doing wrong?
I did not upload context and script into docker container? Or I did an a mistake into script?
docker run --rm -v $(pwd)/rep/:/zap/wrk/:rw -t owasp/zap2docker-weekly zap-baseline.py \-t https://my-site/ -n $(pwd)/rep/prm.context -z \
"-config script.scripts.name="PRMAUTH.py" \-config script.scripts.engine="jython" \-config script.scripts.type=proxy \-config script.scripts.enabled=true \-config script.scripts.file="/zap/wrk/PRMAUTH.py"" \
<...>
2021-06-16 13:22:34,335 Failed to load context file /zap/wrk/prm.context : internal_error
<...>
7926 [ZAP-ProxyThread-4] INFO org.zaproxy.zap.authentication.ScriptBasedAuthenticationMethodType - Loaded script:PRMAUTH.py
7927 [ZAP-ProxyThread-4] ERROR org.zaproxy.zap.authentication.ScriptBasedAuthenticationMethodType - Unable to load Script Based Authentication method. The script PRMAUTH.py does not properly implement the Authentication Script interface.
8001 [ZAP-ProxyThread-4] ERROR org.zaproxy.zap.extension.api.ContextAPI - null
java.lang.NullPointerException: null
at org.zaproxy.zap.utils.EncodingUtils.mapToString(EncodingUtils.java:31) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.zaproxy.zap.authentication.ScriptBasedAuthenticationMethodType.persistMethodToSession(ScriptBasedAuthenticationMethodType.java:757) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.zaproxy.zap.extension.authentication.ExtensionAuthentication.persistContextData(ExtensionAuthentication.java:407) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.parosproxy.paros.model.Model.saveContext(Model.java:547) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.parosproxy.paros.model.Session.saveContext(Session.java:1306) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.parosproxy.paros.model.Session.importContext(Session.java:1605) ~[zap-D-2021-06-07.jar:D-2021-06-07]
at org.zaproxy.zap.extension.api.ContextAPI.handleApiAction(ContextAPI.java:279) [zap-D-2021-06-07.jar:D-2021-06-07]
at org.zaproxy.zap.extension.api.API.handleApiRequest(API.java:507) [zap-D-2021-06-07.jar:D-2021-06-07]
at org.parosproxy.paros.core.proxy.ProxyThread.processHttp(ProxyThread.java:497) [zap-D-2021-06-07.jar:D-2021-06-07]
at org.parosproxy.paros.core.proxy.ProxyThread.run(ProxyThread.java:333) [zap-D-2021-06-07.jar:D-2021-06-07]
at java.lang.Thread.run(Thread.java:829) [?:?]
I need to copy files into docker manually like a "docker cp foo.txt mycontainer:/foo.txt" before "docker run lalala" or it must find files in to mounted directory "-v $(pwd)/rep/:/zap/wrk/:rw "?=) Why it throw "Unable to load Script Based Authentication method. The script PRMAUTH.py does not properly implement the Authentication Script interface."?=)
I have read all available documentation and all related threads here at least twice, and I'm still missing something=) It is last step for succes, happynes and running minimal useful DevSecOps framework=) Please, help to understand, how it works=)