:-(

This means I need to overlay the whole CasValidationConfiguration bean.


> Am 04.05.2017 um 17:46 schrieb Dmitriy Kopylenko <[email protected]>:
> 
> The reason is that currently serviceValidateController bean in CAS is not 
> @ConditionalOnMissingBean
> 
> D.
> 
> 
> From: robertoschwald <[email protected]> 
> <mailto:[email protected]>
> Reply: [email protected] <mailto:[email protected]> <[email protected]> 
> <mailto:[email protected]>
> Date: May 4, 2017 at 11:40:26 AM
> To: CAS Community <[email protected]> <mailto:[email protected]>
> Subject:  [cas-user] Overloading Bean Configuration does not work in 5.0.4 
> 
>> I need to overload the ServiceValidateController Bean by my own 
>> configuration bean, but it seems Spring Boot is first using my bean, then 
>> again the original one and I don't know why.
>> 
>> My bean is called CasOverlayedValidationConfiguration:
>> 
>> @Configuration("casOverlayedValidationConfiguration")
>> @EnableConfigurationProperties(CasConfigurationProperties.class)
>> @Order(value = 50000)
>> public class CasOverlayedValidationConfiguration {
>> 
>> @Autowired
>> private CasConfigurationProperties casProperties;
>> 
>> @Autowired
>> @Qualifier("casAttributeEncoder")
>> private CasAttributeEncoder casAttributeEncoder;
>> 
>> @Autowired
>> @Qualifier("cas3SuccessView")
>> private View cas3SuccessView;
>> 
>> @Autowired
>> @Qualifier("authenticationContextValidator")
>> private AuthenticationContextValidator authenticationContextValidator;
>> 
>> @Autowired
>> @Qualifier("defaultAuthenticationSystemSupport")
>> private AuthenticationSystemSupport authenticationSystemSupport;
>> 
>> @Autowired
>> @Qualifier("cas20WithoutProxyProtocolValidationSpecification")
>> private ValidationSpecification 
>> cas20WithoutProxyProtocolValidationSpecification;
>> 
>> @Autowired
>> @Qualifier("cas2ServiceFailureView")
>> private View cas2ServiceFailureView;
>> 
>> @Autowired
>> @Qualifier("proxy20Handler")
>> private ProxyHandler proxy20Handler;
>> 
>> @Autowired
>> @Qualifier("servicesManager")
>> private ServicesManager servicesManager;
>> 
>> @Autowired
>> @Qualifier("centralAuthenticationService")
>> private CentralAuthenticationService centralAuthenticationService;
>> 
>> @Autowired
>> @Qualifier("defaultArgumentExtractor")
>> private ArgumentExtractor argumentExtractor;
>> 
>> @Autowired
>> @Qualifier("defaultMultifactorTriggerSelectionStrategy")
>> private MultifactorTriggerSelectionStrategy 
>> multifactorTriggerSelectionStrategy;
>> 
>> @Autowired
>> private View cas3ServiceSuccessView;
>> 
>> @Autowired
>> private View cas3ServiceJsonView;
>> 
>> 
>> /*
>>  Use cas3ServiceSuccessView to be able to release attributes in CAS 2.0 
>> serviceValidate
>>  until all CAS Clients are migrated
>>  */
>> @Bean
>> public ServiceValidateController serviceValidateController() {
>>  final ServiceValidateController c = new ServiceValidateController();
>>  
>> c.setValidationSpecification(this.cas20WithoutProxyProtocolValidationSpecification);
>>  c.setSuccessView(cas3ServiceSuccessView);
>>  c.setFailureView(cas2ServiceFailureView);
>>  c.setProxyHandler(proxy20Handler);
>>  c.setAuthenticationSystemSupport(authenticationSystemSupport);
>>  c.setServicesManager(servicesManager);
>>  c.setCentralAuthenticationService(centralAuthenticationService);
>>  c.setArgumentExtractor(argumentExtractor);
>>  
>> c.setMultifactorTriggerSelectionStrategy(multifactorTriggerSelectionStrategy);
>>  c.setAuthenticationContextValidator(authenticationContextValidator);
>>  c.setJsonView(cas3ServiceJsonView);
>>  
>> c.setAuthnContextAttribute(casProperties.getAuthn().getMfa().getAuthenticationContextAttribute());
>>  return c;
>> }
>> 
>> }
>> 
>> 
>> The logs show this:
>> 
>> 1. First, my bean definition overwrites the one from 
>> 
>> 2017-05-04 15:53:22,312 INFO [org.apereo.cas.web.CasWebApplication] - <The 
>> following profiles are active: native>
>> 2017-05-04 15:53:22,341 INFO 
>> [org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext]
>>  - <Refreshing 
>> org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5e25a92e:
>>  startup date [Thu May 04 15:53:22 CEST 2017]; parent: 
>> org.springframework.context.annotation.AnnotationConfigApplicationContext@387c703b>
>> 2017-05-04 15:53:23,372 INFO 
>> [org.springframework.beans.factory.support.DefaultListableBeanFactory] -
>> <Overriding bean definition for bean 'serviceValidateController' with a 
>> different definition:
>> replacing
>> [Generic bean: class [org.apereo.cas.web.ServiceValidateController];
>> scope=singleton; abstract=false; lazyInit=false; autowireMode=0; 
>> dependencyCheck=0; autowireCandidate=true; primary=false;
>> factoryBeanName=null; factoryMethodName=null; initMethodName=null; 
>> destroyMethodName=null;
>> defined in URL
>> [jar:file:/projects/cas5/cas/build/libs/cas.war!/WEB-INF/lib/cas-server-support-validation-5.0.4.jar!/org/apereo/cas/web/ServiceValidateController.class]]
>> with
>> [Root bean: class [null]; scope=; abstract=false; lazyInit=false; 
>> autowireMode=3;
>> dependencyCheck=0; autowireCandidate=true; primary=false; 
>> factoryBeanName=casOverlayedValidationConfiguration;
>> factoryMethodName=serviceValidateController; initMethodName=null; 
>> destroyMethodName=(inferred);
>> defined in class path resource 
>> [org/apereo/cas/web/config/CasOverlayedValidationConfiguration.class]]>
>> 
>> 
>> This would be fine.
>> BUT a second later, it again overwrites my bean with the one from 
>> "CasValidationConfiguration.class", but as Classpath resource:
>> 
>> 
>> 2017-05-04 15:53:23,380 INFO 
>> [org.springframework.beans.factory.support.DefaultListableBeanFactory] -
>> <Overriding bean definition for bean 'serviceValidateController' with a 
>> different definition:
>> replacing [Root bean: class [null];
>> scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; 
>> autowireCandidate=true; primary=false;
>> factoryBeanName=CasOverlayedValidationConfiguration; 
>> factoryMethodName=serviceValidateController;
>> initMethodName=null; destroyMethodName=(inferred);
>> defined in
>>   class path resource 
>> [org/apereo/cas/web/config/CasOverlayedValidationConfiguration.class]]
>> with
>>   [Root bean: class [null]; scope=; abstract=false; lazyInit=false; 
>> autowireMode=3;
>>   dependencyCheck=0; autowireCandidate=true; primary=false; 
>> factoryBeanName=casValidationConfiguration;
>>   factoryMethodName=serviceValidateController; initMethodName=null; 
>> destroyMethodName=(inferred); 
>>   defined in class path resource 
>> [org/apereo/cas/web/config/CasValidationConfiguration.class]]>
>> 
>> 
>> My overlay is based on the gradle overlay template. It doesn't matter if I 
>> start the application as a standalone war application using "java -jar 
>> cas.war", or in Intellij using a local Tomcat 8 Server.
>> 
>> Any ideas?
>> 
>> Thanks Robert
>> 
>>  
>> --
>> - CAS gitter chatroom: https://gitter.im/apereo/cas 
>> <https://gitter.im/apereo/cas>
>> - CAS mailing list guidelines: 
>> https://apereo.github.io/cas/Mailing-Lists.html 
>> <https://apereo.github.io/cas/Mailing-Lists.html>
>> - CAS documentation website: https://apereo.github.io/cas 
>> <https://apereo.github.io/cas>
>> - CAS project website: https://github.com/apereo/cas 
>> <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] 
>> <mailto:[email protected]>.
>> To view this discussion on the web visit 
>> https://groups.google.com/a/apereo.org/d/msgid/cas-user/a06acd49-1dd1-4089-8d68-410e0396a6b8%40apereo.org
>>  
>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/a06acd49-1dd1-4089-8d68-410e0396a6b8%40apereo.org?utm_medium=email&utm_source=footer>.
> 
> -- 
> - CAS gitter chatroom: https://gitter.im/apereo/cas 
> <https://gitter.im/apereo/cas>
> - CAS mailing list guidelines: 
> https://apereo.github.io/cas/Mailing-Lists.html 
> <https://apereo.github.io/cas/Mailing-Lists.html>
> - CAS documentation website: https://apereo.github.io/cas 
> <https://apereo.github.io/cas>
> - CAS project website: https://github.com/apereo/cas 
> <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] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/a/apereo.org/d/msgid/cas-user/etPan.590b4ced.395a00e5.ac2%40unicon.net
>  
> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/etPan.590b4ced.395a00e5.ac2%40unicon.net?utm_medium=email&utm_source=footer>.

-- 
- 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/41A32F33-AC6C-444D-B18D-D6FFEB116624%40gmail.com.

Reply via email to