After upgrading to Spectrum 20.2.3, the integration with CABI JasperReports stopped working.
The following error is generated:
org.springframework.security.authentication.BadCredentialsException: Repository User Not Found with user name=[email protected] and tenant id=spectrum
The Enable SSO option is enabled and used to work fine before the upgrade.
Type Exception Report
Message Error during synchronization
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.springframework.security.authentication.AuthenticationServiceException: Error during synchronization com.jaspersoft.jasperserver.api.security.externalAuth.ExternalDataSynchronizerImpl.synchronize(ExternalDataSynchronizerImpl.java:106) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) com.sun.proxy.$Proxy115.synchronize(Unknown Source) com.ca.bicoe.cajasperserver.preauth.sso.authentication.ProxyAuthenticationFilter.onSuccessfulAuthentication(ProxyAuthenticationFilter.java:318) com.ca.bicoe.cajasperserver.preauth.sso.authentication.ProxyAuthenticationFilter.processattemptAuthentication(ProxyAuthenticationFilter.java:248) com.ca.bicoe.cajasperserver.preauth.sso.authentication.ProxyAuthenticationFilter.doFilterext(ProxyAuthenticationFilter.java:218) com.ca.bicoe.cajasperserver.preauth.sso.authentication.ProxyAuthenticationFilter.doFilter(ProxyAuthenticationFilter.java:153) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.multipleTenancy.MTBasicProcessingFilter.doFilter(MTBasicProcessingFilter.java:194) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.war.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:239) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.ji.license.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:103) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.ji.license.JILicenseFilter.doFilter(JILicenseFilter.java:86) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.war.NullFilter.doFilter(NullFilter.java:43) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.ca.bicoe.cajasperserver.preauth.sso.ext.filter.ExternalAuthenticationProxyFilter.doFilter(ExternalAuthenticationProxyFilter.java:83) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.war.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:239) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.api.logging.filter.BasicLoggingFilter.doFilter(BasicLoggingFilter.java:57) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.api.security.WebAppSecurityFilter.doFilter(WebAppSecurityFilter.java:80) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.war.MultipartRequestWrapperFilter.doFilter(MultipartRequestWrapperFilter.java:95) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.war.NullFilter.doFilter(NullFilter.java:43) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.api.security.encryption.EncryptionFilter.doFilter(EncryptionFilter.java:150) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.ca.bicoe.cajasperserver.preauth.sso.filters.BasicRefererBasedCsrfFilter.doFilter(BasicRefererBasedCsrfFilter.java:99) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) com.jaspersoft.jasperserver.war.util.SessionDecoratorFilter.doFilter(SessionDecoratorFilter.java:63) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) com.jaspersoft.jasperserver.war.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:67) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) com.jaspersoft.jasperserver.war.httpheaders.ResourceHTTPHeadersFilter.doFilter(ResourceHTTPHeadersFilter.java:77) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) com.jaspersoft.jasperserver.war.SessionXssNonceSetterFilter.doFilter(SessionXssNonceSetterFilter.java:64) com.jaspersoft.jasperserver.war.P3PFilter.doFilter(P3PFilter.java:43)
Root Cause
org.springframework.security.authentication.BadCredentialsException: Repository User Not Found with user [email protected] and tenant id=spectrum com.ca.bicoe.cajasperserver.preauth.sso.authentication.processors.TenantUserValidationProcessor.processUser(TenantUserValidationProcessor.java:223) com.ca.bicoe.cajasperserver.preauth.sso.authentication.processors.TenantUserValidationProcessor.processTenant(TenantUserValidationProcessor.java:199) com.ca.bicoe.cajasperserver.preauth.sso.authentication.processors.TenantUserValidationProcessor.process(TenantUserValidationProcessor.java:176) com.jaspersoft.jasperserver.api.security.externalAuth.ExternalDataSynchronizerImpl.synchronize(ExternalDataSynchronizerImpl.java:86) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) com.sun.proxy.$Proxy115.synchronize(Unknown Source) com.ca.bicoe.cajasperserver.preauth.sso.authentication.ProxyAuthenticationFilter.onSuccessfulAuthentication(ProxyAuthenticationFilter.java:318) com.ca.bicoe.cajasperserver.preauth.sso.authentication.ProxyAuthenticationFilter.processattemptAuthentication(ProxyAuthenticationFilter.java:248) com.ca.bicoe.cajasperserver.preauth.sso.authentication.ProxyAuthenticationFilter.doFilterext(ProxyAuthenticationFilter.java:218) com.ca.bicoe.cajasperserver.preauth.sso.authentication.ProxyAuthenticationFilter.doFilter(ProxyAuthenticationFilter.java:153) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.multipleTenancy.MTBasicProcessingFilter.doFilter(MTBasicProcessingFilter.java:194) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.war.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:239) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.ji.license.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:103) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.ji.license.JILicenseFilter.doFilter(JILicenseFilter.java:86) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.war.NullFilter.doFilter(NullFilter.java:43) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.ca.bicoe.cajasperserver.preauth.sso.ext.filter.ExternalAuthenticationProxyFilter.doFilter(ExternalAuthenticationProxyFilter.java:83) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.war.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:239) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.api.logging.filter.BasicLoggingFilter.doFilter(BasicLoggingFilter.java:57) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.api.security.WebAppSecurityFilter.doFilter(WebAppSecurityFilter.java:80) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.war.MultipartRequestWrapperFilter.doFilter(MultipartRequestWrapperFilter.java:95) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.war.NullFilter.doFilter(NullFilter.java:43) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.jaspersoft.jasperserver.api.security.encryption.EncryptionFilter.doFilter(EncryptionFilter.java:150) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) com.ca.bicoe.cajasperserver.preauth.sso.filters.BasicRefererBasedCsrfFilter.doFilter(BasicRefererBasedCsrfFilter.java:99) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) com.jaspersoft.jasperserver.war.util.SessionDecoratorFilter.doFilter(SessionDecoratorFilter.java:63) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) com.jaspersoft.jasperserver.war.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:67) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) com.jaspersoft.jasperserver.war.httpheaders.ResourceHTTPHeadersFilter.doFilter(ResourceHTTPHeadersFilter.java:77) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) com.jaspersoft.jasperserver.war.SessionXssNonceSetterFilter.doFilter(SessionXssNonceSetterFilter.java:64) com.jaspersoft.jasperserver.war.P3PFilter.doFilter(P3PFilter.java:43)
Note The full stack trace of the root cause is available in the server logs.
The userSync option is disabled in the Spectrum Report Manager Preferences.
Feb 03, 2021 09:15:36.689 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - Jasper SSO is : true
Feb 03, 2021 09:15:36.704 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - Getting Jasper Server Info...
Feb 03, 2021 09:15:36.704 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - Server Info URL:http://JasperHost:8080/jasperserver-pro/rest_v2/serverInfo
Feb 03, 2021 09:15:36.987 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - Jasper Server Info:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><serverInfo><build>20180522_1000</build><dateFormatPattern>yyyy-MM-dd</dateFormatPattern><datetimeFormatPattern>yyyy-MM-dd'T'HH:mm:ss</datetimeFormatPattern><edition>PRO</edition><editionName>Enterprise</editionName><features>AUD MT EXP Fusion AHD DB </features><licenseType>Commercial</licenseType><version>6.4.3</version></serverInfo>
Feb 03, 2021 09:15:37.003 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - Integrated with Jasper Server @JasperHost, Enabled=true
Feb 03, 2021 09:15:37.003 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - Granting MySQL privileges to JasperServer JasperHost
Feb 03, 2021 09:15:37.003 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - MySQL privilege grant operation completed.
Feb 03, 2021 09:15:37.018 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - value of isJasperMultitenancyEnabled--false
Feb 03, 2021 09:16:03.458 (SRM/DeviceModelPoll/updates) - InterfaceAssets: unable to get port list for device doesn't contains interfaces for 0x11dcb0
Feb 03, 2021 09:16:14.057 (SRM/DeviceModelPoll/updates) - InterfaceAssets: unable to get port list for device doesn't contains interfaces for 0x1441fc
Feb 03, 2021 09:16:41.237 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - Integrated with Jasper Server @JasperHost, Enabled=true
Feb 03, 2021 09:16:41.237 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - isJasperEnabled: true isUserSync: false
Feb 03, 2021 09:16:41.237 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - Jasper SSO is ON, Updating key stores
Feb 03, 2021 09:16:41.237 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - Enabling SSO with jasper server...
Feb 03, 2021 09:16:41.612 (http-nio-80-exec-7) (RepMgr) - (DEBUG) - Read username [email protected]
Release : 20.2
Component : Jaspersoft for CA Spectrum
Enable the UserSync option in the Spectrum Report Manager Preferences.
One of the two options can be performed to trigger the User synchronization: