PEngines - Admin authorization continually failing?

UPDATE: I copied my entire Pengines setup from Windows to my Ubuntu 18.04 box. The problem does not happen with Linux. So in Windows I tried manually changing the ASCII CRLF pair I found at the end of the password in the passwd file to a plain ASCII LF character. Unfortunately that did not help. I really would like to get this solved on Windows because all my dev tools and the editor (Notepad++) I use along side the XPCE editor are on Windows.

I’m using: SWI-Prolog version 8.0.2 on Windows 8.1. Note, I can run Swish, Scratchpad, and the Genealogy app without problem.

I have “reset” my admin password with my PEngines instance several times by deleting the passwd file, restarting PEngins, and entering a new user name and password, and in each trial I completely exited the SWI-Prolog instance running the PEngines server and restarted. I’ve tried several different passwords, some incredibly simple with only alphabetic characters. No matter what I do, when I get the HTTP authentication dialog box to access the Admin area, after I enter my login details the dialog box immediately returns prompting me to enter my login details again.

There is never an error message. There are no messages in the Chrome debugger console either except for a preliminary complaint about assets/ico/favicon.png being missing. There are no messages in the SWI-Prolog interpreter window either. Can anyone give me something to try so I can rectify this?

Jan, can you tell me where I might set a spy point in the Pengines code so I might try tracing out the problem and hopefully find out what the root cause is?

Also, is the Pengines data directory supposed to be empty? I was hoping to find some log files in it. I can’t seem to find log files anywhere in the Pengins directory tree.

I don’t know how the old pengines code does authentication. Most likely through library(http/http_authenticate) though. There are debug topics, so you could try

?- debug(http_authenticate).

or find out which authentication lib it uses, look in that file, set relevant debug topics or a spy point using

?- tspy(predicate).
2 Likes