I have the following problem: the krb5 & gsi plugins use either an environment variable or if not set geteuid to define the token/proxy location for authentication.
In a multithreaded application it is not possible to have thread-private environment variables or effective uids thread-private, so I cannot use this mechanism unless I created a lock environment and set this variables for each individual XRootD call, which kills parallelism/performance.
The simplest way for me would be to pass the two relevant variables with each URL e.g.
"root://host//myfile?env:KRB5CCNAME=/tmp/krb5cc_QQWIUQIWUE1239873"