Looks awesome -- do you know right-offhand whether it will play nice in a non-web application? It seems to, I'm exploring it now... the end goal pretty much will be a single-standalone exe/a.out executable, compiled with PAR.
Update: does not appear to be Win32 friendly. Is there anything in PPM that does the job? (i.e. directory authentication) -- doesn't appear to be. It appears these OpenPlugin guys are supporting SMB from the Linux/Unix side only (or something -- I can't say I blame them), given that even with VC++, etc, the makefiles still don't work. I seem to be cursed here :)
While it is OpenPlugin's written goal to be a plugin manager for web applications, that description is a bit inaccurate. Perhaps it should just be "A plugin manager for applications". But that sounds a little silly :-) It's just a plugin framework, trying to make it so that both framework developers, and individual application developers, rewrite as little code as possible.
It takes common things, such as Sessions, Logging, Exceptions, and Authentication, and attempts to provide a single API for each, yet allowing you to use any number of backends. It does the same thing for mod_perl, mod_perl2, and CGI, allowing you to switch from one environment to the other by simply changing the driver name. All the above are plugins, and you can enable and disable them as you see fit.
I use it every day in a production environment, mostly in web applications, but I have few non-web apps. However, one plugin that goes nearly unused, and is a bit incomplete, is the Authentication plugin. Why? I just really haven't gotten around to it :-) My efforts have gone into other parts of that framework, along with OpenThought. You're the first one to ask about it :-) I'd love to see it have a complete and robust Authentication API and drivers.
As far as Windows goes, it doesn't surprise me that OpenPlugin doesn't work there. All my development is generally done on Linux and BSD boxes, I don't have an opportunity to test there much.
Your initial question of seeking a cross-platform authentication mechanism is something I'd like to see in OpenPlugin. As you also saw, it's not there yet. I'd be happy to work with you to help make it meet your needs.
You said you had some trouble during the install -- the version on CPAN now, because of it's Log::Log4perl dependency, requires a boatload of modules. Newer versions of Log::Log4perl moved some functionality "in-house", significantly reducing it's dependencies. I've put code into CVS taking advantage of that, and could send you a working snapshot if you like.
If you wish, feel free to msg me, we could take this discussion to email where we could go over the parts that aren't working for you.
-- Lucy: "What happens if you practice the piano for 20 years and then end up not being rich and famous?" Schroeder: "The joy is in the playing."
I really appreciate the response. Since this is a commercial deal, I don't think I'd be able to contribute back to your project -- so I am probably going to just let this go for now. Again, I appreciate the help, and it looks like you have some great stuff here -- which I'd definitely contribute to and help out with if I could... Sadly, I can't...
Anyhow, the largeness of my compile issues are the way they always are -- if a CPAN module isn't in PPM, you usually can get it to work if (a) it's Windows friendly and (b) it doesn't have a lot of prereqs. This isn't a knock on your module, it's just a limitation due to Windows being poorly supported by the prereq modules. I'll live :)
I've exhausted my knowledge in this area. My only thought is: if Win32 authen/authz is easy enough to do you should be able to create a plugin to OpenPlugin for it. Kind of a cop-out ("see if you can do it yourself") but at least some of the plumbing is done for you.
Actually, the Microsoft C API's are horrendous and poorly documented. I have two solutions on my desk here from previous company acquisitions ... both using LogonUser. I'd rather have Windows code than a framework. PAM is icing. Thanks though...I figured this was gonna be hard!