Peter Palaga created CXF-9261:
---------------------------------

             Summary: Decouple adding bc-fips dependency from FIPS dependent 
behavior at runtime
                 Key: CXF-9261
                 URL: https://issues.apache.org/jira/browse/CXF-9261
             Project: CXF
          Issue Type: Bug
            Reporter: Peter Palaga


PR [#1893|https://github.com/apache/cxf/pull/1893] has added a Maven profile 
called `fips`. 
It is activated via `-Dfips.enabled` and adds `org.bouncycastle:bc-fips` 
dependency. 

The same PR added a few changes of behavior at runtime, that are also enabled 
by `fips.enabled` system property. 

This enables testing the FIPS behavior with a specific FIPS-compliant security 
provider and it works well for folks wanting `org.bouncycastle:bc-fips`.

However, testing with alternative FIPS-compliant providers becomes hard or only 
possible with dirty workarounds. Specifically, FIPS testing with an alternative 
FIPS-compliant provider on Quarkus CXF gets hard.

It is because Quarkus builds the test app, (which includes dependency 
resolution) from within its JUnit extension. That JUnit extension is run inside 
the JVM forked by Maven surefire/failsafe plugins. To enable the runtime FIPS 
behavior during the test, there is no other way to pass `-Dfips.enabled` to 
that JVM than via surefire/failsafe failsafe config. Because the dependency 
resolution happens inside that JVM, it also adds the `org.bouncycastle:bc-fips` 
dependency. So it is not possible to build and run the test app without 
`org.bouncycastle:bc-fips` dependency but with FIPS runtime behavior.

I think similar scenario is possible with plain CXF.

To solve the sketched problem I would like to propose the following:

* Do not assume `org.bouncycastle:bc-fips` is the default security provider 
when FIPS is enabled at runtime. 
* Decouple the activation of the FIPS runtime behavior from adding the 
`org.bouncycastle:bc-fips` dependency by renaming the fips profile activation 
property to e.g. `bc-fips.enabled`.







--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to