Basically it involved parsing JNDI stuff which involved grabbing remote code (but that was a niche feature of JNDI in the Dev’s defense). Basically, you may think it is just something like variable substitution but can involve much crazier stuff.
Edit: and for more context, JNDI is typically a thing for getting a database connection stored on the application server. The idea being you just ask for “customer database” and don’t have to define the connection in the code. The server has it defined elsewhere. So in each environment it works the same. Basically glorified and standardized config file type of thing.
Basically it involved parsing JNDI stuff which involved grabbing remote code (but that was a niche feature of JNDI in the Dev’s defense). Basically, you may think it is just something like variable substitution but can involve much crazier stuff.
Edit: and for more context, JNDI is typically a thing for getting a database connection stored on the application server. The idea being you just ask for “customer database” and don’t have to define the connection in the code. The server has it defined elsewhere. So in each environment it works the same. Basically glorified and standardized config file type of thing.