Migration notes from beta
This page explains the changes since 5.3.0-beta, plus any changes required to migrate from 5.3.0-beta to the stated version of Atoti Market Risk.
Changes since 5.3.0-beta
Added
Issue Key | Details |
---|---|
MR-1606 | Added a new implementation of IVaRQuantile: SimpleQuantile. |
Changed
Issue Key | Details |
---|---|
MR-1605 | Quantile type and rounding method display names can now be set with properties. |
MR-1595 | Upgraded to Atoti Server 6.0.9. |
Removed
Issue Key | Details |
---|---|
MR-1615 | Removed the ActivePivotRemotingServicesConfig import. |
Fixed
Issue Key | Details |
---|---|
MR-1392 | The ladder computations for PnL Explain and Taylor VaR have been fixed by replacing PnL = PnL(Ladder(shift), sensi) with PnL = Ladder(PnL(shift), shift) . |
MR-1610 | Configured missing Volga Taylor VaR measures. |
MR-1618 | Ladder-based sensitivity measures can now be excluded from the configuration. |
Migrate to 5.3.0
Upgrading from version 5.3.0-beta, see Atoti Market Risk 5.3 Release Notes.
Atoti Market Risk uses Atoti Server 6.0.9 and Atoti UI 5.1.x. For new features and fixes included in these releases, please see the Atoti UI documentation and Atoti UI Migration Notes, and the release notes for Atoti Server.
Summary
- Java 17 upgrade : The Atoti Market Risk is now compatible with, and requires Java 17.
- Spring Security upgrade : We have upgraded Spring Security to version 5.8.7 to resolve vulnerabilities and prepare for the upgrade to Spring Security 6.0 (via Spring Boot 3).
- Atoti Server upgrade : The Atoti Market Risk has been upgraded to Atoti Server 6.0.9.
- Solutions Tools BOM upgrade : The Solutions Tools BOM dependency has been upgraded to 2.0-AS6.0. All included tools are compatible with, and require Java 17.
- Volga Taylor VaR measures: Volga Taylor VaR measures have been added to the Solution.
- Statistical measures for interpolated market shift measures: The minimum, maximum, average, and percentile measures have been added for interpolated market shift measures.
- PnL Explain and Taylor VaR: The ladder computation has been fixed by replacing
PnL = PnL(Ladder(shift), sensi)
withPnL = Ladder(PnL(shift), shift)
. - IPnLExplainFormulaProvider consistency cleanup: The new
getShiftFromMDFormula
function has been added to theIPnLExplainFormulaProvider
to transform market data into a shift. See IPnLExplainFormulaProvider consistency cleanup. - Removal of ActivePivotRemotingServicesConfig: The import of
ActivePivotRemotingServicesConfig
has been removed from the configuration classMarketRiskConfig
. - Made ladder-based sensitivity measures optional: Ladder-based sensitivity measures can now be excluded from the configuration. If the configuration classes are excluded, no visible measures will be present in the cube. If the Solution is configured to use ladders as an input to PnL Explain and Taylor VaR calculations, the result will be NaN.
Breaking Changes
- The MR 5.3.0 release is now compatible with, and requires Java 17.
- The Solutions Tools BOM dependency has been upgraded to 2.0-AS6.0. All included tools are compatible with, and require Java 17.
- The Spring Security configuration has been upgraded to version 5.8.7, for future compatibility with Spring 6.0. Customizations built on previous versions will need to be migrated.
- A new
getShiftFromMDFormula
function has been added to theIPnLExplainFormulaProvider
. - The import of
ActivePivotRemotingServicesConfig
has been removed from the configuration classMarketRiskConfig
.
Properties
Properties Added
Property Name | Type | Comment | Value |
---|---|---|---|
mr.cubes.context-values.display-names.quantiles | Map<String, String> | Configure display names for implementation of IVaRQuantile. The key is the implementation’s plugin key. The value is the display name. | EQUAL_WEIGHT: Equal Weight, CENTERED: Centered, EXCLUSIVE: Exclusive, SIMPLE: Simple |
mr.cubes.context-values.display-names.rounding-methods | Map<String, String> | Configure display names for implementation of IVaRRounding. The key is the implementation’s plugin key. The value is the display name. | FLOOR: Floor, CEIL: Ceil, ROUND: Round, ROUND_EVEN: Round Even, WEIGHTED: Weighted |
Properties Modified
Old Property Name | New Property Name | Comment |
---|---|---|
mr.cubes.context-values.defaults.quantile-type | mr.cubes.context-values.defaults.quantile | Property name changed to bring it in line with other references to quantiles. No other changes made to the property. |
mr.cubes.context-values.defaults.rounding-type | mr.cubes.context-values.defaults.rounding-method | Property name changed to bring it in line with other references to rounding methods. No other changes made to the property. |
Beans
Added
The following beans have been added to define parameters related to Volga Taylor VaR:
Constant | Qualifier | Type | Details |
---|---|---|---|
SP_QUALIFIER__VOLGA_TAYLOR_VAR_PARAMETERS | “Volga Taylor VAR Parameters” | VaRMetricParametersAndNames |
Parameters and constants used for Volga Taylor VAR measures. |
SP_QUALIFIER__VOLGA_TAYLOR_ES_PARAMETERS | “Volga Taylor ES Parameters” | VaRMetricParametersAndNames |
Parameters and constants used for Volga Taylor ES measures. |
SP_QUALIFIER__VOLGA_TAYLOR_ETG_PARAMETERS | “Volga Taylor ETG Parameters” | VaRMetricParametersAndNames |
Parameters and constants used for Volga Taylor ETG measures. |
SP_QUALIFIER__VOLGA_TAYLOR_VAE_PARAMETERS | “Volga Taylor VAE Parameters” | VaRMetricParametersAndNames |
Parameters and constants used for Volga Taylor VAE measures. |
SP_QUALIFIER__VOLGA_TAYLOR_WVAE_PARAMETERS | “Volga Taylor WVAE Parameters” | VaRMetricParametersAndNames |
Parameters and constants used for Volga Taylor WVAE measures. |
SP_QUALIFIER__VOLGA_TAYLOR_WVAR_PARAMETERS | “Volga Taylor WVAR Parameters” | VaRMetricParametersAndNames |
Parameters and constants used for Volga Taylor WVAR measures. |
Those constants are defined in the SpringConstants
class of the mr-common-lib
module, and the beans are defined in the mr-sensi-config
module.
In the following files in the mr-sensi-config
module:
- CashShiftViewerChain
- CorrelationShiftViewerChain
- CrossGammaShiftViewerChain
- DeltaShiftViewerChain
- GammaShiftViewerChain
- VannaShiftViewerChain
- VegaShiftViewerChain
- VolgaShiftViewerChain
the following beans have been added to define statistical measures on interpolated market shift measures:
Constant | Qualifier | Type | Details |
---|---|---|---|
SENSI + SHIFT_VECTOR_INTERPOLATED_MIN | SENSI + “Shift Vector Interpolated Minimum” | CopperMeasure |
Measure computing the minimum of the Market Shift vector used by the sensitivity, interpolated, not normalized. |
SENSI + SHIFT_VECTOR_INTERPOLATED_MAX | SENSI + “Shift Vector Interpolated Maximum” | CopperMeasure |
Measure computing the maximum of the Market Shift vector used by the sensitivity, interpolated, not normalized. |
SENSI + SHIFT_VECTOR_INTERPOLATED_AVG | SENSI + “Shift Vector Interpolated Average” | CopperMeasure |
Measure computing the average of the Market Shift vector used by the sensitivity, interpolated, not normalized. |
SENSI + SHIFT_VECTOR_INTERPOLATED_PERCENTILE | SENSI + “Shift Vector Interpolated Percentile” | CopperMeasure |
Measure computing the percentile of the Market Shift vector used by the sensitivity, interpolated, not normalized. |
SENSI + SHIFT_VECTOR_INTERPOLATED_NORMALIZED_MIN | SENSI + “Shift Vector Interpolated Normalized Minimum” | CopperMeasure |
Measure computing the maximum of the Market Shift vector used by the sensitivity, interpolated, normalized. |
SENSI + SHIFT_VECTOR_INTERPOLATED_NORMALIZED_MAX | SENSI + “Shift Vector Interpolated Normalized Maximum” | CopperMeasure |
Measure computing the minimum of the Market Shift vector used by the sensitivity, interpolated, normalized. |
SENSI + SHIFT_VECTOR_INTERPOLATED_NORMALIZED_AVG | SENSI + “Shift Vector Interpolated Normalized Average” | CopperMeasure |
Measure computing the average of the Market Shift vector used by the sensitivity, interpolated, normalized. |
SENSI + SHIFT_VECTOR_INTERPOLATED_NORMALIZED_PERCENTILE | SENSI + “Shift Vector Interpolated Normalized Percentile” | CopperMeasure |
Measure computing the percentile of the Market Shift vector used by the sensitivity, interpolated, normalized. |
In the mr-sensi-config
module, the following classes containing the definition of Volga Taylor VaR measures have been added:
Package | File Name | Details |
---|---|---|
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.es | VolgaTaylorESContextualChain | Definition of the Volga Taylor ES measures using the ESConfidenceLevel context value for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.es | VolgaTaylorESFixedConfidenceChain | Definition of the Volga Taylor ES measures using fixed values for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.etg | VolgaTaylorETGContextualChain | Definition of the Volga Taylor ETG measures using the ETGConfidenceLevel context value for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.etg | VolgaTaylorETGFixedConfidenceChain | Definition of the Volga Taylor ETG measures using fixed values for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.vae | VolgaTaylorVAEContextualChain | Definition of the Volga Taylor VAE measures using the VAEConfidenceLevel context value for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.vae | VolgaTaylorVAEFixedConfidenceChain | Definition of the Volga Taylor VAE measures using fixed values for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.var | VolgaTaylorVARContextualChain | Definition of the Volga Taylor VAR measures using the VARConfidenceLevel context value for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.var | VolgaTaylorVARFixedConfidenceChain | Definition of the Volga Taylor VAR measures using fixed values for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvae | VolgaTaylorWVAEContextualChain | Definition of the Volga Taylor Weighted VAE measures using the VAEConfidenceLevel context value for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvae | VolgaTaylorWVAEFixedConfidenceChain | Definition of the Volga Taylor Weighted VAE measures using fixed values for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvar | VolgaTaylorWVARContextualChain | Definition of the Volga Taylor Weighted VAR measures using the VAEConfidenceLevel context value for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor.wvar | VolgaTaylorWVARFixedConfidenceChain | Definition of the Volga Taylor Weighted VAR measures using fixed values for the percentile. |
com.activeviam.mr.sensi.measures.chains.complete.volga.taylor | VolgaTaylorChain | Definition of the PnL vector measures used for Volga Taylor VaR and of the Volga Taylor Tail VaE and Volga Taylor Tail VaR measures. |
com.activeviam.mr.sensi.measures.config.parameters.taylor | VolgaTaylorParametersConfig | Definition of the parameters used for Volga Taylor VaR measure definitions. |
In the mr-sensi-config
module, imports of the following configuration files have been added to the VolgaTaylorMeasuresConfig class:
- VolgaTaylorETGContextualChain
- VolgaTaylorETGFixedConfidenceChain
- VolgaTaylorVAEContextualChain
- VolgaTaylorVAEFixedConfidenceChain
- VolgaTaylorWVAEContextualChain
- VolgaTaylorWVAEFixedConfidenceChain
- VolgaTaylorWVARContextualChain
- VolgaTaylorWVARFixedConfidenceChain
- VolgaTaylorESContextualChain
- VolgaTaylorESFixedConfidenceChain
- VolgaTaylorVaRContextualChain
- VolgaTaylorVaRFixedConfidenceChain
- VolgaTaylorChain
In the mr-sensi-config
module, the import of the following file has been added to the AllTaylorParameters class:
- VolgaTaylorParametersConfig
In the mr-sensi-lib
module, the following constants have been added in the file SensiMeasureParameters:
Constant | Value | Details |
---|---|---|
SHIFT_VECTOR_INTERPOLATED_MIN | “Shift Vector Interpolated Minimum” | Suffix of the measure computing the minimum of the Market Shift vector used by a sensitivity, interpolated, not normalized. |
SHIFT_VECTOR_INTERPOLATED_MAX | “Shift Vector Interpolated Maximum” | Suffix of the measure computing the maximum of the Market Shift vector used by a sensitivity, interpolated, not normalized. |
SHIFT_VECTOR_INTERPOLATED_AVG | “Shift Vector Interpolated Average” | Suffix of the measure computing the average of the Market Shift vector used by a sensitivity, interpolated, not normalized. |
SHIFT_VECTOR_INTERPOLATED_PERCENTILE | “Shift Vector Interpolated Percentile” | Suffix of the measure computing the percentile of the Market Shift vector used by a sensitivity, interpolated, not normalized. |
SHIFT_VECTOR_INTERPOLATED_NORMALIZED_MIN | “Shift Vector Interpolated Normalized Minimum” | Suffix of the measure computing the minimum of the Market Shift vector used by a sensitivity, interpolated, normalized. |
SHIFT_VECTOR_INTERPOLATED_NORMALIZED_MAX | “Shift Vector Interpolated Normalized Maximum” | Suffix of the measure computing the maximum of the Market Shift vector used by a sensitivity, interpolated, normalized. |
SHIFT_VECTOR_INTERPOLATED_NORMALIZED_AVG | “Shift Vector Interpolated Normalized Average” | Suffix of the measure computing the average of the Market Shift vector used by a sensitivity, interpolated, normalized. |
SHIFT_VECTOR_INTERPOLATED_NORMALIZED_PERCENTILE | “Shift Vector Interpolated Normalized Percentile” | Suffix of the measure computing the percentile of the Market Shift vector used by a sensitivity, interpolated, normalized. |
Measures
Added
Cube | Measure | Details |
---|---|---|
Market Data | Shift Vector Interpolated Minimum | Minimum of the Market Shift vector, interpolated, not normalized |
Market Data | Shift Vector Interpolated Maximum | Maximum of the Market Shift vector, interpolated, not normalized |
Market Data | Shift Vector Interpolated Average | Average of the Market Shift vector, interpolated, not normalized |
Market Data | Shift Vector Interpolated Percentile | Percentile of the Market Shift vector, interpolated, not normalized |
Market Data | Shift Vector Interpolated Normalized Minimum | Minimum of the Market Shift vector, interpolated, normalized |
Market Data | Shift Vector Interpolated Normalized Maximum | Maximum of the Market Shift vector, interpolated, normalized |
Market Data | Shift Vector Interpolated Normalized Average | Average of the Market Shift vector, interpolated, normalized |
Market Data | Shift Vector Interpolated Normalized Percentile | Percentile of the Market Shift vector, interpolated, normalized |
Sensi | Correlation Shift Vector Interpolated Minimum | Minimum of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized |
Sensi | Correlation Shift Vector Interpolated Maximum | Maximum of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized |
Sensi | Correlation Shift Vector Interpolated Average | Average of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized |
Sensi | Correlation Shift Vector Interpolated Percentile | Percentile of the Market Shift vector used by the Correlation sensitivity, interpolated, not normalized |
Sensi | Correlation Shift Vector Interpolated Normalized Minimum | Minimum of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized |
Sensi | Correlation Shift Vector Interpolated Normalized Maximum | Maximum of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized |
Sensi | Correlation Shift Vector Interpolated Normalized Average | Average of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized |
Sensi | Correlation Shift Vector Interpolated Normalized Percentile | Percentile of the Market Shift vector used by the Correlation sensitivity, interpolated, normalized |
Sensi | CrossGamma Shift Vector Interpolated Minimum | Minimum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized |
Sensi | CrossGamma Shift Vector Interpolated Maximum | Maximum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized |
Sensi | CrossGamma Shift Vector Interpolated Average | Average of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized |
Sensi | CrossGamma Shift Vector Interpolated Percentile | Percentile of the Market Shift vector used by the CrossGamma sensitivity, interpolated, not normalized |
Sensi | CrossGamma Shift Vector Interpolated Normalized Minimum | Minimum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized |
Sensi | CrossGamma Shift Vector Interpolated Normalized Maximum | Maximum of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized |
Sensi | CrossGamma Shift Vector Interpolated Normalized Average | Average of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized |
Sensi | CrossGamma Shift Vector Interpolated Normalized Percentile | Percentile of the Market Shift vector used by the CrossGamma sensitivity, interpolated, normalized |
Sensi | Delta Shift Vector Interpolated Minimum | Minimum of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized |
Sensi | Delta Shift Vector Interpolated Maximum | Maximum of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized |
Sensi | Delta Shift Vector Interpolated Average | Average of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized |
Sensi | Delta Shift Vector Interpolated Percentile | Percentile of the Market Shift vector used by the Delta sensitivity, interpolated, not normalized |
Sensi | Delta Shift Vector Interpolated Normalized Minimum | Minimum of the Market Shift vector used by the Delta sensitivity, interpolated, normalized |
Sensi | Delta Shift Vector Interpolated Normalized Maximum | Maximum of the Market Shift vector used by the Delta sensitivity, interpolated, normalized |
Sensi | Delta Shift Vector Interpolated Normalized Average | Average of the Market Shift vector used by the Delta sensitivity, interpolated, normalized |
Sensi | Delta Shift Vector Interpolated Normalized Percentile | Percentile of the Market Shift vector used by the Delta sensitivity, interpolated, normalized |
Sensi | Gamma Shift Vector Interpolated Minimum | Minimum of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized |
Sensi | Gamma Shift Vector Interpolated Maximum | Maximum of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized |
Sensi | Gamma Shift Vector Interpolated Average | Average of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized |
Sensi | Gamma Shift Vector Interpolated Percentile | Percentile of the Market Shift vector used by the Gamma sensitivity, interpolated, not normalized |
Sensi | Gamma Shift Vector Interpolated Normalized Minimum | Minimum of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized |
Sensi | Gamma Shift Vector Interpolated Normalized Maximum | Maximum of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized |
Sensi | Gamma Shift Vector Interpolated Normalized Average | Average of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized |
Sensi | Gamma Shift Vector Interpolated Normalized Percentile | Percentile of the Market Shift vector used by the Gamma sensitivity, interpolated, normalized |
Sensi | Vanna Shift Vector Interpolated Minimum | Minimum of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized |
Sensi | Vanna Shift Vector Interpolated Maximum | Maximum of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized |
Sensi | Vanna Shift Vector Interpolated Average | Average of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized |
Sensi | Vanna Shift Vector Interpolated Percentile | Percentile of the Market Shift vector used by the Vanna sensitivity, interpolated, not normalized |
Sensi | Vanna Shift Vector Interpolated Normalized Minimum | Minimum of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized |
Sensi | Vanna Shift Vector Interpolated Normalized Maximum | Maximum of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized |
Sensi | Vanna Shift Vector Interpolated Normalized Average | Average of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized |
Sensi | Vanna Shift Vector Interpolated Normalized Percentile | Percentile of the Market Shift vector used by the Vanna sensitivity, interpolated, normalized |
Sensi | Vega Shift Vector Interpolated Minimum | Minimum of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized |
Sensi | Vega Shift Vector Interpolated Maximum | Maximum of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized |
Sensi | Vega Shift Vector Interpolated Average | Average of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized |
Sensi | Vega Shift Vector Interpolated Percentile | Percentile of the Market Shift vector used by the Vega sensitivity, interpolated, not normalized |
Sensi | Vega Shift Vector Interpolated Normalized Minimum | Minimum of the Market Shift vector used by the Vega sensitivity, interpolated, normalized |
Sensi | Vega Shift Vector Interpolated Normalized Maximum | Maximum of the Market Shift vector used by the Vega sensitivity, interpolated, normalized |
Sensi | Vega Shift Vector Interpolated Normalized Average | Average of the Market Shift vector used by the Vega sensitivity, interpolated, normalized |
Sensi | Vega Shift Vector Interpolated Normalized Percentile | Percentile of the Market Shift vector used by the Vega sensitivity, interpolated, normalized |
Sensi | Volga Shift Vector Interpolated Minimum | Minimum of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized |
Sensi | Volga Shift Vector Interpolated Maximum | Maximum of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized |
Sensi | Volga Shift Vector Interpolated Average | Average of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized |
Sensi | Volga Shift Vector Interpolated Percentile | Percentile of the Market Shift vector used by the Volga sensitivity, interpolated, not normalized |
Sensi | Volga Shift Vector Interpolated Normalized Minimum | Minimum of the Market Shift vector used by the Volga sensitivity, interpolated, normalized |
Sensi | Volga Shift Vector Interpolated Normalized Maximum | Maximum of the Market Shift vector used by the Volga sensitivity, interpolated, normalized |
Sensi | Volga Shift Vector Interpolated Normalized Average | Average of the Market Shift vector used by the Volga sensitivity, interpolated, normalized |
Sensi | Volga Shift Vector Interpolated Normalized Percentile | Percentile of the Market Shift vector used by the Volga sensitivity, interpolated, normalized |
Sensi | List of Volga Taylor ES measures | See the list of all Volga Taylor ES measures in the link. |
Sensi | List of Volga Taylor ETG measures | See the list of all Volga Taylor ETG measures in the link. |
Sensi | List of Volga Taylor VaE measures | See the list of all Volga Taylor VaE measures in the link. |
Sensi | List of Volga Taylor VaR measures | See the list of all Volga Taylor VaR measures in the link. |
Other changes
Java 17 upgrade
The Solution is now built and intended to be run within a Java 17 JVM. Some functionality in the full application and in the regressions tests requires deep reflection access to Java packages. To enable access, please use the following JVM parameters, either through the command line or maven surefire/failsafe configuration.
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
note
The Solution will not work in a Java 11 JVM.
Spring Security upgrade
We have upgraded to Spring Security 5.8.7. To do so, we override the version of Spring Security in Spring Boot by importing the common-dependencies-bom
version
1.2.0 into the parent pom file. The common-dependencies-bom
overrides the Spring Security version using Spring’s migration guide.
You will eventually need to migrate your own custom security configuration(s) in preparation for Spring Security 6.0. We have upgraded our out-of-the-box security configurations to help in this migration.
note
We recommend using your own custom security configuration(s) and referring to the out-of-the-box security configuration provided only as a sample.
The default security users and roles have not changed, only the way we implement the security. We have done so by making the following changes:
Stop Using WebSecurityConfigurerAdapter
We have replaced instances of WebSecurityConfigurerAdapter
with SecurityFilterChain
beans.
Use the new requestMatchers
methods
In Authorize Http Requests, we have replaced invocations of http.authorizeHttpRequests((authz) -> authz.antMatchers(...))
with http.authorizeHttpRequests((authz) -> authz.requestMatchers(...))
.
Use the new securityMatchers methods
We have replaced invocations of http.antMatchers(...)
with http.securityMatchers(...)
.
As an example of the previous changes, the configuration for accessing the endpoint which exposes the JWT token changed from:
@Configuration
@Order(1)
public static abstract class AJwtSecurityConfigurer extends WebSecurityConfigurerAdapter {
@Autowired
protected ApplicationContext context;
@Autowired
@Qualifier(BASIC_AUTH_BEAN_NAME)
protected AuthenticationEntryPoint authenticationEntryPoint;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher(JwtRestServiceConfig.REST_API_URL_PREFIX + "/**")
// As of Spring Security 4.0, CSRF protection is enabled by default.
.csrf().disable()
// Configure CORS
.cors().and()
.authorizeRequests()
.antMatchers("/**").hasAnyAuthority(ROLE_USER)
.and()
.httpBasic().authenticationEntryPoint(authenticationEntryPoint);
}
}
to
@Bean
@Order(1)
public SecurityFilterChain jwtSecurityFilterChain(HttpSecurity http,ApplicationContext applicationContext){
final AuthenticationEntryPoint basicAuthenticationEntryPoint = applicationContext.getBean(BASIC_AUTH_BEAN_NAME,AuthenticationEntryPoint.class);
return http
// As of Spring Security 4.0, CSRF protection is enabled by default.
.csrf(AbstractHttpConfigurer::disable)
// Configure CORS
.cors().and()
.securityMatcher(url(JwtRestServiceConfig.REST_API_URL_PREFIX,WILDCARD))
.authorizeHttpRequests(
auth->auth.requestMatchers(HttpMethod.OPTIONS,url(WILDCARD))
.permitAll()
.anyRequest()
.hasAnyAuthority(ROLE_USER))
.httpBasic(basic->basic.authenticationEntryPoint(basicAuthenticationEntryPoint))
.build();
}
IPnLExplainFormulaProvider consistency cleanup
A new getShiftFromMDFormula
function has been added to the IPnLExplainFormulaProvider
, used to transform a couple of market data into a shift.
It returns a lambda function (double quoteT, double quoteTMinus1) -> shift
.
The PnLExplainFormulaProvider
implementation has been cleaned up to reduce the cases: the getPnlExplainFormula
implementation has been replaced with
pnlExplainFormula = (sensitivity, quoteT, quoteTMinus1) -> vaRExplainFormula.applyAsDouble(sensitivity, shiftFormula.applyAsDouble(quoteT, quoteTMinus1))
This bean returns null instead of (...) -> 0.0
when no formula has been found, to avoid printing out an incorrect null PnL.
Removal of ActivePivotRemotingServicesConfig
- The import of
ActivePivotRemotingServicesConfig
has been removed from the configuration classMarketRiskConfig
. - The following
antMatchers
have been rmoved from the security configuration fileSecurityConfig
:.antMatchers(ID_GENERATOR_REMOTING_SERVICE + "/**").hasAnyAuthority(ROLE_USER, ROLE_TECH) .antMatchers(LONG_POLLING_REMOTING_SERVICE + "/**").hasAnyAuthority(ROLE_USER, ROLE_TECH) .antMatchers(LICENSING_REMOTING_SERVICE + "/**").hasAnyAuthority(ROLE_USER, ROLE_TECH)
Integration tests
In the mr-application-tests
module, the following changes have been made in the file used for integration tests:
- The files present in the folder
test-bookmarks/07 - Aggregate Taylor VaR
have been updated to reflect the changes in the Taylor VaR measure numbers introduced by the addition of the Taylor VaR measures. - The files present in the folder
test-bookmarks-combined/03 - Taylor VaR
have been updated to reflect the changes in the Taylor VaR measure numbers introduced by the addition of the Taylor VaR measures. - The folder
test-bookmarks/08 - Market Shifts Statistics
has been renamed totest-bookmarks/09 - Market Shifts Statistics
and its content has been changed to add queries for more sensitivity types than just delta. - The folder
test-bookmarks/08 - Volga Taylor VaR
has been created to test Volga Taylor VaR measures - The following files have been created to test the statistical in the market data cube:
- test-bookmarks/MarketDataCube/shiftStats.query
- test-bookmarks/MarketDataCube/shiftStats.csv
- test-bookmarks-combined/MarketDataCube/shiftStats.query
- test-bookmarks-combined/MarketDataCube/shiftStats.csv