The change I have in mind, mostly arose out of me attempting to write a Service 
extension. Agreed that things are pretty comfortable as they are, [and really, 
how often do you get to come up with a new Service type?!] but it potentially 
could be improved to reduce work. In my case, I had to write an argument 
extractor to create a new special service (MfaEnabledService, etc). Given that 
services are looked up by class name to locate their id generator, I also had 
to create one of those for my service type, even though it was really no 
different than the default provided for a given CAS service. This, I have in 
mind, can be refactored to make writing such extensions easier. 


I looked at the 4.0 feature branch and do see the factory instances. Drawing on 
the same idea, one possible approach would be to come up with factory instances 
for protocols, (CAS, OpenId, GoogleApps, Saml, etc) where each derived factory 
would then be able to create the proper instance of the id generator...and we 
can provide sensible defaults for those that are missing or are yet to come as 
extensions. 

----- Original Message -----

From: "Scott Battaglia" <scott.battag...@gmail.com> 
To: cas-dev@lists.jasig.org 
Sent: Friday, September 13, 2013 9:10:21 AM 
Subject: Re: [cas-dev] Thoughts on CAS-1312 


I'm all for consolidating/better association though I don't like it being 
attached to the service. We did some work in the feature branch for 4.0 though 
brought in factories and such that managed this. Not sure if we can pull any of 
that over. 



On Thu, Sep 12, 2013 at 12:40 PM, Misagh Moayyed < mmoay...@unicon.net > wrote: 




Team, 
Started to evaluate the feasibility of implementing CAS-1312: 
https://issues.jasig.org/browse/CAS-1312 


Currently, ticket id generators [for services] are looked up by name from a 
map, particularly by class name. This implies of course that as service 
extensions are developed, corresponding generators need to be added to this 
map. I was thinking to remove this dependency, by allowing each service type 
[CAS, Saml, etc] to define its own ticket id generator based on the current 
configuration, so that we might be able to define something like: 
service.getTicketIdGenerator(), and remove the need for the lookup. 


The caveat is that, in order to inject settings into ticket id generators some 
refactoring needs to be done so that settings such as maxLength and suffix are 
passed along to the right argument extractor, that is responsible for creating 
the service instance...or perhaps instead of injecting settings, we'll "set" 
the id generator instance as a whole for the service by passing it to the 
argument extractor directly. This latter approach is cleaner IMO, and allows 
also for defining alternative implementations of the id generator to be set on 
the service. Plus, better to pass the entire object as a whole, rather than 
individual pieces that construct it. 



What are your thoughts on this JIRA and options above? 


Misagh -- 
You are currently subscribed to cas-dev@lists.jasig.org as: 
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 as: mmoay...@unicon.net 
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