I'll let you two hash that one out :) I was just hoping I was missing an easy way to get CAS to use my service factory implementations instead of the built in versions and if not to test the waters for a feature request to add the ConditiinalOnMissingBean annotation to the argument extractor.
On Friday, June 23, 2017 at 4:36:03 PM UTC-6, [email protected] wrote: > > I'll just add my 2c. here. > > The "CAS5 overlay is the hell for deployers..." is of course a highly > subjective statement. First and foremost, CAS5 generation was designed with > ease of deployment and "intention-driven configuration" model in mind, and > NOT as a software "leaking" its internals to everyone enabling them to > "easily" re-write every aspect of it. > > Second, the Spring annotation-based configuration model is very much a > modern DI that STILL enables you to wire, re-wire, inject, re-inject, and > all that other goodness of Spring DI if you desire to - just in the more > powerful and modern fashion. Besides, if you HAVE TO for whatever reason > re-implement and re-wire dozens of CAS classes, why not let Java instead of > XML assemble them together in a type-safe fashion. > > And finally, here's a good blog post touching upon the rational behind > CAS5 config design decisions: > https://apereo.github.io/2017/02/21/cas-autocfg-strategy/ > > Good weekend! > > D. > > On Jun 23, 2017, 18:19 -0400, Yaroslav Panych <[email protected] > <javascript:>>, wrote: > > Well,sometimes redefining bean in deployerContextConfig.xml works. > Just override configuration itself. Copy it from cas sources into your > project, modify and build it. Final .war will contain your .class in > root(/WEB-INF/classes/..), which has higher priority than one packed > in .jar. Unfortunatelly it is only possible way to customize > cas(except forking), since devs got rid of xml spring context > configurations. I already have patched two dozens of classes this way > in cas 5.0.x branch. In modern cas Spring plays role of web framework, > but not as component (de)coupling mechanism, since component wiring > hardcoded into class files, and cannot be done in xml files by > declareing new bean and changing references. Overlay method of using > cas is actually hell for customizer. Every other bean you have > override using described here method, becuase other methods to patch > components DI are not working. The same can be applied for > login-webflow.xml - it is almost empty, most states are dynamically > build during cas startup, and it is impossible to control flow. > > 2017-06-24 0:30 GMT+03:00 Geoff <[email protected] <javascript:>>: > > Hello, > > I'd like to implement my own version of WebApplicationServiceFactory and > SamlServiceFactory in CAS 5.1.0 however I don't see a way to make CAS my > implementations instead of the out of the box versions. > > In my CAS 4 implementation this was accomplished by specifying custom > ArgumentExtractors in argumentExtractorsConfiguration.xml. In CAS 5 it > looks like a single argument extractor is defined in > CasCoreWebConfiguration > and it effectively uses ServiceFactories found on any configuration classes > that implement ServiceFactoryConfigurer. This provides a nice mechanism to > add new ServiceFactories but I don't see a way to override the existing > ones. > > It seems like an easy way to allow this sort of customization would be to > annotate the ArgumentExtractor defined in CasCoreWebConfiguration with > ConditionalOnMissingBean so that it could be overriden. Or maybe I'm > overlooking an easier way of modifying the behavior in > WebApplicationServiceFactory and SamlServiceFactory? > > Thanks! > > Geoff > > -- > - CAS gitter chatroom: https://gitter.im/apereo/cas > - CAS mailing list guidelines: > https://apereo.github.io/cas/Mailing-Lists.html > - CAS documentation website: https://apereo.github.io/cas > - CAS project website: https://github.com/apereo/cas > --- > You received this message because you are subscribed to the Google Groups > "CAS Community" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To view this discussion on the web visit > > https://groups.google.com/a/apereo.org/d/msgid/cas-user/e415701d-7aa7-46d9-b529-a27dfafd30f4%40apereo.org > . > > > -- > - CAS gitter chatroom: https://gitter.im/apereo/cas > - CAS mailing list guidelines: > https://apereo.github.io/cas/Mailing-Lists.html > - CAS documentation website: https://apereo.github.io/cas > - CAS project website: https://github.com/apereo/cas > --- > You received this message because you are subscribed to the Google Groups > "CAS Community" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To view this discussion on the web visit > https://groups.google.com/a/apereo.org/d/msgid/cas-user/CAGbteJJncdf2Pn_V7ZwBGzsp%2BdfWShL-%3DBNZdW8OL5S6ApSeqw%40mail.gmail.com > . > > -- - CAS gitter chatroom: https://gitter.im/apereo/cas - CAS mailing list guidelines: https://apereo.github.io/cas/Mailing-Lists.html - CAS documentation website: https://apereo.github.io/cas - CAS project website: https://github.com/apereo/cas --- You received this message because you are subscribed to the Google Groups "CAS Community" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/a/apereo.org/d/msgid/cas-user/1ca50ea8-260d-46bc-882e-8e6f29e0d983%40apereo.org.
