I believe most of you met me on IRC as "oha", for the others I'm a
software developer working at Deichman library here in Oslo: Nice to
meet you all!
In the last week, I had a look at C4::Auth, and how the whole
authentication, authorization and session management works.
I came up with a little prototype which replace most of C4::Auth, CGI
and Session with something I believe simpler and easier to extend.
right now, it doesn't support anything but simple authentication. But
most of the work done to integrate with CAS or Shib should be easily
refactored in (I don't have a test environment for that, and I know too
little to help much)
To simplify the transition, I'm developing it without changing anything
on the common koha code. IOW if you run it via apache it will behave
like it was in the past, but if you are in plack and want to check it
out, you just have to enable the new Koha::Middleware::Session and the
new system will just "magically" replace the old one.
Hopefully the transition won't be long and we can then refactor the rest
of the code and drop the magic-ness.
the code is now divided in 2 parts:
there is an abstract Koha::Session with implementations for memcache,
mysql and memory only (the last one is not really useful when forking)
there is also a Koha::Auth which support modules for different auth
systems, right now only simple authentication is supported.
Koha::Auth also provide templating (this should be refactored again
later, probably, but... baby steps for now) and it works more like an
Auth Environment for every users.
on my test box it seems to be working fine, but I'm positive I have
missed few bits here and there.
I will definitely need some feedback and help to finish the design for
different auth modules, so if you are currently using one and you are
willing to help, please let me know.
more in general, would be nice to know what do you think about it, you
can find a WIP branch here: