By default, ecflow requires a user name.
...
The name is used for logging and to enable/disable access, when used in ecFlow White list file or Black list file
However, this can be problematic in certain cases, when working remotely, where the login name (UID) used on the remote machine(client) does not match the UID for user the user for accessing the server.
To get round around this we can specify the user:
Code Block language bash title ECF_USER export ECF_USER=fred; ecflow_client --ping # send a message to the server posing as user fred
Code Block language bash title --user ecflow_client --user fred --ping # send a message to the server posing as user fred
Code Block language py title python import ecflow cl = ecflow.Client("polonius",3142) cl.set_user_name("fred") cl.ping()
However, However this would allow user to pose as someone else. Hence in order to use this functionality, a password must be provided. See Black list file
Additionally, we do not want all user users to be forced to use a password just because one user is working remotely.
Hence ecflow_server has special support for the password for those users, using ECF_USER or --user on the client-side.
An additional password file , can be specified ECF_CUSTOM_USER can be used. (the format is the same as Black list file).
Code Block |
---|
<host>.<port>.ecf.custom_passwd |
The server will load look for this file during server start time.startup, alternatively, we can explicitly set the ECF_CUSTOM_PASSWD environment variable
Code Block |
---|
export ECF_CUSTOM_USERPASSWD=polonius.3142.ecf.custom_passwd ecflow_start.sh -p 3142 |
Additionally, if new users are added/removed this file can be reloaded at run time with:
...