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]>, 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]>:
> > 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].
> > 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].
> 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/dcaeb322-faf1-4229-9e7b-05e5b72bcdb8%40Spark.

Reply via email to