Hello,
I am attempting to create a custom .so for a Linux Serv-U installation. I may have a fundamental misunderstanding of how the library is called and what it can do. I was hoping someone could point me in the right direction. I have implemented the SUUAIsUserDirty() and SUUAVerifyPassword() functions and commented out the rest. The main reason I want to use the API is because the login and access rules are being driven by a separate application. I have the Serv-U database setup to automatically reflect changes made in this other system. Most significantly, the passwords are stored using a different hashing algorithm than the default Serv-U one. Therefore I thought I could have SUUAIsUserDirty() check for changes made while a user is logged in and SUUAVerifyPassword() use the different hashing algorithm. (I am still in the testing/building phase so I am also considering implementing additional functions once I have a better understanding of how these all interact)
I originally tested the two functions by creating a test executable that would pass parameters to these functions...and they seem to be sufficiently developed to test them in Serv-U. When I add the library in the Serv-U Management Console I see the library loaded in the logs. However, when I try to login with a test user, the SUUAVerifyPassword() function does not seem to be called when authenticating the user.
A couple of concerns I have right off the bat. If this function did work would it lock me out while using the admin account? The users I want this function to apply to are database users. I would like the admin user to continue using the built in Serv-U password verification.
I am assuming there is more needed to get Serv-U to call these functions. (Perhaps some of the API functions are needed that I am not implementing?). I am assuming the main Serv-U thread passes the values from the login form to the functions in the integration library. If not, I am not certain how to obtain these values. I am leaving out quite a few details because I want to make sure my general understanding of what needs to be implemented isn't way off the mark. I will be happy to elaborate as necessary.
Any advice/guidance would be greatly appreciated.
Thank you!