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 <panyc...@gmail.com>, 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 <white.ge...@gmail.com>:
> > 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 cas-user+unsubscr...@apereo.org.
> > 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 cas-user+unsubscr...@apereo.org.
> 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 cas-user+unsubscr...@apereo.org.
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/dcaeb322-faf1-4229-9e7b-05e5b72bcdb8%40Spark.

Reply via email to