I like your CAS4 plan to make registries responsible for cleaning themselves.

Regarding the performance issue, what if the transaction were limited to reading a single Ticket and deleting it if it's expired? It's OK to get the list of Ticket IDs outside of the transactions, since IDs that were created in between can be expired by a later clean() method, and IDs that were deleted in between can be ignored by the current clean() method. It's OK that this takes longer, because it's running in a background thread and it doesn't block anything. I haven't tried this, because I'm keeping my Tickets in memory, but it's just an idea.

Cheers,
11011011


Scott Battaglia wrote:
One of the things I've been working on with CAS4 is that Tickets, and the items they depend on, have implementations specific to the backing store (so that Authentication isn't lumped into a BLOB, for example). Its actually a huge pain in the butt, and I'm not sure if its worth the effort (for one thing, it will make us think more about what we support since there needs to be implementations specific to each item we support).

That clearly doesn't help CAS3 at all, and I'm mostly throwing it out there to get feedback for CAS4 (in CAS4, registries are also responsible for knowing how to clean themselves).

Another option, that may help with CAS3 is to encode the expiration logic into the cleaners. Its counterintuitive, and clearly defeats the purpose of the ExpirationPolicy. However it could be useful to do something like "delete from serviceTicket where numberOfUses < 1 and now() lastUpdateTime > 5000)" (I made that up right now and can't vouch that that would actually execute). The reality is that most people don't change the actual expiration policies, just possibly the time limits.

Cheers,
Scott

-Scott Battaglia
PGP Public Key Id: 0x383733AA
LinkedIn: http://www.linkedin.com/in/scottbattaglia


On Wed, Apr 29, 2009 at 11:38 AM, Marvin Addison <marvin.addi...@gmail.com <mailto:marvin.addi...@gmail.com>> wrote:

    > Update is only called when a ticket is acted upon (in a number
    of ways).

    I see, so I need the client to do something to trigger the update and
    mark the ticket expired, which is the problem I'm trying to solve.  I
    missed that consequence in your first response.  Time to consider
    other options.

    Thanks for taking the time to consider my proposal.

    M

    --
    You are currently subscribed to cas-dev@lists.jasig.org
    <mailto:cas-dev@lists.jasig.org> as: scott.battag...@gmail.com
    <mailto:scott.battag...@gmail.com>
    To unsubscribe, change settings or access archives, see
    http://www.ja-sig.org/wiki/display/JSG/cas-dev


--
You are currently subscribed to cas-dev@lists.jasig.org 
<mailto:cas-dev@lists.jasig.org> as: jbeu...@hawaii.edu
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-dev


--
You are currently subscribed to cas-dev@lists.jasig.org as: 
arch...@mail-archive.com
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-dev

Reply via email to