Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ELY-1996] [Community] SSLContext to support delegation to alternate instances based on peer information. #1382

Merged
merged 2 commits into from Mar 22, 2024

Conversation

Skyllarr
Copy link
Contributor

@Skyllarr Skyllarr commented Mar 24, 2020

This PR is just a place to discuss the approach.

https://issues.redhat.com/browse/EAP7-1121

@Skyllarr Skyllarr changed the title [EAP7-1121] [Do not merge] POC for SSLContext to support delegation to alternate instances based on peer information. [EAP7-1121] POC for SSLContext to support delegation to alternate instances based on peer information. Mar 24, 2020
@Skyllarr Skyllarr added the 1.x label Mar 24, 2020
@Skyllarr Skyllarr force-pushed the EAP7-1121 branch 3 times, most recently from 42cb2b0 to 6566eed Compare March 30, 2020 17:00
@wildfly-ci
Copy link

Linux - JDK11 EA 28 Build 458 outcome was FAILURE using a merge of 6566eed
Summary: Exit code 1 (Step: Maven) (new) Build time: 00:00:08

@wildfly-ci
Copy link

Windows Build 454 outcome was FAILURE using a merge of 6566eed
Summary: Exit code 1 (Step: Maven) (new) Build time: 00:00:17

@wildfly-ci
Copy link

Linux - JDK11 EA 28 Build 459 outcome was FAILURE using a merge of 6566eed
Summary: Exit code 1 (Step: Maven) Build time: 00:00:08

@wildfly-ci
Copy link

Windows Build 455 outcome was FAILURE using a merge of 6566eed
Summary: Exit code 1 (Step: Maven) Build time: 00:00:08

@wildfly-ci
Copy link

Linux - JDK11 EA 28 Build 460 outcome was FAILURE using a merge of 5328040
Summary: Exit code 1 (Step: Maven) Build time: 00:00:11

@wildfly-ci
Copy link

Windows Build 456 outcome was FAILURE using a merge of 5328040
Summary: Exit code 1 (Step: Maven) Build time: 00:00:12

@Skyllarr Skyllarr force-pushed the EAP7-1121 branch 2 times, most recently from 822cd3b to ced5fb0 Compare March 30, 2020 17:33
@wildfly-ci
Copy link

Linux - JDK11 EA 28 Build 461 outcome was FAILURE using a merge of ced5fb0
Summary: Tests passed: 292; exit code 1 (Step: Maven) Build time: 00:01:16

@wildfly-ci
Copy link

Windows Build 457 outcome was FAILURE using a merge of ced5fb0
Summary: Tests passed: 292; compilation error: Compiler (new) Build time: 00:01:31

@wildfly-ci
Copy link

Windows Build 458 outcome was FAILURE using a merge of 5dd4d89
Summary: Tests passed: 292; compilation error: Compiler (new) Build time: 00:01:30

@wildfly-ci
Copy link

Windows Build 459 outcome was FAILURE using a merge of d7c3dd4
Summary: Tests passed: 292; compilation error: Compiler Build time: 00:01:31

@wildfly-ci
Copy link

Linux - JDK11 EA 28 Build 463 outcome was FAILURE using a merge of d7c3dd4
Summary: Tests failed: 1 (1 new), passed: 1092, ignored: 22 Build time: 00:07:33

Failed tests

org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testServer: org.wildfly.security.auth.client.InvalidAuthenticationConfigurationException: org.wildfly.client.config.ConfigXMLParseException: ELY01135: Failed to load keystore data
 at file:/store/work/tc-work/47c7d1a7a2ffc4ef/tests/base/target/test-classes/org/wildfly/security/dynamic/ssl/wildfly-config-dynamic-ssl-test.xml:29:54
org.wildfly.security.auth.client.InvalidAuthenticationConfigurationException: 
org.wildfly.client.config.ConfigXMLParseException: ELY01135: Failed to load keystore data
	at file:/store/work/tc-work/47c7d1a7a2ffc4ef/tests/base/target/test-classes/org/wildfly/security/dynamic/ssl/wildfly-config-dynamic-ssl-test.xml:29:54
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.lambda$testServer$0(DynamicSSLContextTest.java:36)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testServer(DynamicSSLContextTest.java:31)
Caused by: org.wildfly.client.config.ConfigXMLParseException: ELY01135: Failed to load keystore data
	at file:/store/work/tc-work/47c7d1a7a2ffc4ef/tests/base/target/test-classes/org/wildfly/security/dynamic/ssl/wildfly-config-dynamic-ssl-test.xml:29:54
	at org.wildfly.security.auth.client.ElytronXmlParser$AbstractLoadingKeyStoreFactory.get(ElytronXmlParser.java:3461)
	at org.wildfly.security.auth.client.ElytronXmlParser$AbstractLoadingKeyStoreFactory.get(ElytronXmlParser.java:3441)
	at org.wildfly.security.auth.client.ElytronXmlParser.parseAuthenticationClientType(ElytronXmlParser.java:379)
	at org.wildfly.security.auth.client.ElytronXmlParser.parseAuthenticationClientConfiguration(ElytronXmlParser.java:255)
	at org.wildfly.security.auth.client.ElytronXmlParser.parseAuthenticationClientConfiguration(ElytronXmlParser.java:219)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.lambda$testServer$0(DynamicSSLContextTest.java:34)
	... 2 more
Caused by: java.io.FileNotFoundException: src/test/resources/org/wildfly/security/dynamic/ssl/client3.truststore.jks (No such file or directory)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)
	at org.wildfly.security.auth.client.ElytronXmlParser$FileLoadingKeyStoreFactory.createStream(ElytronXmlParser.java:3478)
	at org.wildfly.security.auth.client.ElytronXmlParser$AbstractLoadingKeyStoreFactory.get(ElytronXmlParser.java:3456)
	... 7 more
------- Stdout: -------
02:22:38,037 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:218> Parsig configuration from file:/store/work/tc-work/47c7d1a7a2ffc4ef/tests/base/target/test-classes/org/wildfly/security/dynamic/ssl/wildfly-config-dynamic-ssl-test.xml for namespace null
02:22:38,193 DEBUG (main) [org.wildfly.security] <ProviderFactory.java:82> Provider org.wildfly.security.http.bearer.WildFlyElytronHttpBearerProvider not found.
02:22:38,193 DEBUG (main) [org.wildfly.security] <ProviderFactory.java:82> Provider org.wildfly.security.http.bearer.WildFlyElytronHttpClientCertProvider not found.
02:22:38,194 DEBUG (main) [org.wildfly.security] <ProviderFactory.java:82> Provider org.wildfly.security.http.bearer.WildFlyElytronHttpDigestProvider not found.
02:22:38,195 DEBUG (main) [org.wildfly.security] <ProviderFactory.java:82> Provider org.wildfly.security.http.bearer.WildFlyElytronHttpFormProvider not found.
02:22:38,195 DEBUG (main) [org.wildfly.security] <ProviderFactory.java:82> Provider org.wildfly.security.http.bearer.WildFlyElytronHttpSpnegoProvider not found.
02:22:38,251 DEBUG (main) [org.wildfly.security] <ProviderFactory.java:69> Provider org.wildfly.security.http.bearer.WildFlyElytronHttpBearerProvider not found.
02:22:38,252 DEBUG (main) [org.wildfly.security] <ProviderFactory.java:69> Provider org.wildfly.security.http.bearer.WildFlyElytronHttpClientCertProvider not found.
02:22:38,253 DEBUG (main) [org.wildfly.security] <ProviderFactory.java:69> Provider org.wildfly.security.http.bearer.WildFlyElytronHttpDigestProvider not found.
02:22:38,254 DEBUG (main) [org.wildfly.security] <ProviderFactory.java:69> Provider org.wildfly.security.http.bearer.WildFlyElytronHttpFormProvider not found.
02:22:38,255 DEBUG (main) [org.wildfly.security] <ProviderFactory.java:69> Provider org.wildfly.security.http.bearer.WildFlyElytronHttpSpnegoProvider not found.
------- Stderr: -------
java.io.FileNotFoundException: src/test/resources/org/wildfly/security/dynamic/ssl/server1.keystore.jks (No such file or directory)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
	at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)
	at org.wildfly.security.dynamic.ssl.DynamicSSLTestUtils.createSSLContext(DynamicSSLTestUtils.java:16)
	at org.wildfly.security.dynamic.ssl.SSLServerSocketTestInstance.run(SSLServerSocketTestInstance.java:26)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testServer(DynamicSSLContextTest.java:27)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at mockit.integration.junit4.internal.JUnit4TestRunnerDecorator.executeTestMethod(JUnit4TestRunnerDecorator.java:162)
	at mockit.integration.junit4.internal.JUnit4TestRunnerDecorator.invokeExplosively(JUnit4TestRunnerDecorator.java:71)


@wildfly-ci
Copy link

Windows Build 460 outcome was FAILURE using a merge of 9ae762b
Summary: Tests passed: 292; compilation error: Compiler Build time: 00:01:32

@wildfly-ci
Copy link

Linux - JDK11 EA 28 Build 468 outcome was FAILURE using a merge of 90a930f
Summary: Tests failed: 2 (2 new), passed: 1100, ignored: 22 Build time: 00:05:13

Failed tests

org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketBySocketHostPortAutoCloseTrue: java.lang.AssertionError
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.lambda$testCreateSocketBySocketHostPortAutoCloseTrue$4(DynamicSSLContextTest.java:149)
	at org.wildfly.common.context.Contextual.run(Contextual.java:73)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketBySocketHostPortAutoCloseTrue(DynamicSSLContextTest.java:137)
------- Stdout: -------
02:54:35,898 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:218> Parsig configuration from file:/store/work/tc-work/47c7d1a7a2ffc4ef/tests/base/target/test-classes/org/wildfly/security/dynamic/ssl/wildfly-config-dynamic-ssl-test.xml for namespace null
02:54:36,527 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [default-keystore] containing aliases [localhost]
02:54:36,784 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore3] containing aliases [client]
02:54:37,045 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore2] containing aliases [client]
02:54:37,301 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore1] containing aliases [client]
------- Stderr: -------
java.net.ConnectException: Connection refused (Connection refused)
	at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:240)
	at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
	at java.base/java.net.Socket.connect(Socket.java:591)
	at java.base/java.net.Socket.connect(Socket.java:540)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.lambda$testCreateSocketBySocketHostPortAutoCloseTrue$4(DynamicSSLContextTest.java:140)
	at org.wildfly.common.context.Contextual.run(Contextual.java:73)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketBySocketHostPortAutoCloseTrue(DynamicSSLContextTest.java:137)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at mockit.integration.junit4.internal.JUnit4TestRunnerDecorator.executeTestMethod(JUnit4TestRunnerDecorator.java:162)
	at mockit.integration.junit4.internal.JUnit4TestRunnerDecorator.invokeExplosively(JUnit4TestRunnerDecorator.java:71)
	at mockit.integration.junit4.internal.MockFrameworkMethod.invokeExplosively(MockFrameworkMethod.java:37)


org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketsBySocketHostPortAutoCloseFalse: java.lang.AssertionError
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.lambda$testCreateSocketsBySocketHostPortAutoCloseFalse$5(DynamicSSLContextTest.java:168)
	at org.wildfly.common.context.Contextual.run(Contextual.java:73)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketsBySocketHostPortAutoCloseFalse(DynamicSSLContextTest.java:156)
------- Stdout: -------
02:54:42,161 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:218> Parsig configuration from file:/store/work/tc-work/47c7d1a7a2ffc4ef/tests/base/target/test-classes/org/wildfly/security/dynamic/ssl/wildfly-config-dynamic-ssl-test.xml for namespace null
02:54:42,849 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [default-keystore] containing aliases [localhost]
02:54:43,107 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore3] containing aliases [client]
02:54:43,364 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore2] containing aliases [client]
02:54:43,654 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore1] containing aliases [client]
------- Stderr: -------
java.net.ConnectException: Connection refused (Connection refused)
	at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:240)
	at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
	at java.base/java.net.Socket.connect(Socket.java:591)
	at java.base/java.net.Socket.connect(Socket.java:540)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.lambda$testCreateSocketsBySocketHostPortAutoCloseFalse$5(DynamicSSLContextTest.java:159)
	at org.wildfly.common.context.Contextual.run(Contextual.java:73)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketsBySocketHostPortAutoCloseFalse(DynamicSSLContextTest.java:156)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at mockit.integration.junit4.internal.JUnit4TestRunnerDecorator.executeTestMethod(JUnit4TestRunnerDecorator.java:162)
	at mockit.integration.junit4.internal.JUnit4TestRunnerDecorator.invokeExplosively(JUnit4TestRunnerDecorator.java:71)
	at mockit.integration.junit4.internal.MockFrameworkMethod.invokeExplosively(MockFrameworkMethod.java:37)


@wildfly-ci
Copy link

Windows Build 464 outcome was FAILURE using a merge of 90a930f
Summary: Tests failed: 2 (2 new), passed: 1100, ignored: 22 Build time: 00:06:48

Failed tests

org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketBySocketHostPortAutoCloseTrue: java.lang.AssertionError
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.lambda$testCreateSocketBySocketHostPortAutoCloseTrue$4(DynamicSSLContextTest.java:149)
	at org.wildfly.common.context.Contextual.run(Contextual.java:73)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketBySocketHostPortAutoCloseTrue(DynamicSSLContextTest.java:137)
------- Stdout: -------
02:55:06,370 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:218> Parsig configuration from file:/C:/BuildAgent/work/47c7d1a7a2ffc4ef/tests/base/target/test-classes/org/wildfly/security/dynamic/ssl/wildfly-config-dynamic-ssl-test.xml for namespace null
02:55:06,981 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [default-keystore] containing aliases [localhost]
02:55:07,236 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore3] containing aliases [client]
02:55:07,489 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore2] containing aliases [client]
02:55:07,743 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore1] containing aliases [client]
------- Stderr: -------
java.net.ConnectException: Connection refused: connect
	at java.base/java.net.PlainSocketImpl.connect0(Native Method)
	at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:101)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:240)
	at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
	at java.base/java.net.Socket.connect(Socket.java:591)
	at java.base/java.net.Socket.connect(Socket.java:540)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.lambda$testCreateSocketBySocketHostPortAutoCloseTrue$4(DynamicSSLContextTest.java:140)
	at org.wildfly.common.context.Contextual.run(Contextual.java:73)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketBySocketHostPortAutoCloseTrue(DynamicSSLContextTest.java:137)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at mockit.integration.junit4.internal.JUnit4TestRunnerDecorator.executeTestMethod(JUnit4TestRunnerDecorator.java:162)
	at mockit.integration.junit4.internal.JUnit4TestRunnerDecorator.invokeExplosively(JUnit4TestRunnerDecorator.java:71)
	at mockit.integration.junit4.internal.MockFrameworkMethod.invokeExplosively(MockFrameworkMethod.java:37)


org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketsBySocketHostPortAutoCloseFalse: java.lang.AssertionError
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.lambda$testCreateSocketsBySocketHostPortAutoCloseFalse$5(DynamicSSLContextTest.java:168)
	at org.wildfly.common.context.Contextual.run(Contextual.java:73)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketsBySocketHostPortAutoCloseFalse(DynamicSSLContextTest.java:156)
------- Stdout: -------
02:55:13,377 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:218> Parsig configuration from file:/C:/BuildAgent/work/47c7d1a7a2ffc4ef/tests/base/target/test-classes/org/wildfly/security/dynamic/ssl/wildfly-config-dynamic-ssl-test.xml for namespace null
02:55:13,985 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [default-keystore] containing aliases [localhost]
02:55:14,241 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore3] containing aliases [client]
02:55:14,495 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore2] containing aliases [client]
02:55:14,748 TRACE (main) [org.wildfly.security.xml] <ElytronXmlParser.java:955> Using KeyStore [keystore1] containing aliases [client]
------- Stderr: -------
java.net.ConnectException: Connection refused: connect
	at java.base/java.net.PlainSocketImpl.connect0(Native Method)
	at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:101)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:240)
	at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
	at java.base/java.net.Socket.connect(Socket.java:591)
	at java.base/java.net.Socket.connect(Socket.java:540)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.lambda$testCreateSocketsBySocketHostPortAutoCloseFalse$5(DynamicSSLContextTest.java:159)
	at org.wildfly.common.context.Contextual.run(Contextual.java:73)
	at org.wildfly.security.dynamic.ssl.DynamicSSLContextTest.testCreateSocketsBySocketHostPortAutoCloseFalse(DynamicSSLContextTest.java:156)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at mockit.integration.junit4.internal.JUnit4TestRunnerDecorator.executeTestMethod(JUnit4TestRunnerDecorator.java:162)
	at mockit.integration.junit4.internal.JUnit4TestRunnerDecorator.invokeExplosively(JUnit4TestRunnerDecorator.java:71)
	at mockit.integration.junit4.internal.MockFrameworkMethod.invokeExplosively(MockFrameworkMethod.java:37)


@wildfly-ci
Copy link

Linux - JDK11 EA 28 Build 708 outcome was FAILURE using a merge of 6668a78
Summary: Exit code 1 (Step: Maven) (new) Build time: 00:00:13

@wildfly-ci
Copy link

Windows Build 698 outcome was FAILURE using a merge of 6668a78
Summary: Exit code 1 (Step: Maven) (new) Build time: 00:00:33

@fjuma
Copy link
Contributor

fjuma commented Aug 28, 2023

Just FYI, I have updated the base branch for this PR to 2.x.

@fjuma
Copy link
Contributor

fjuma commented Dec 11, 2023

@Skyllarr Just noticed we currently have this PR open in addition to #1488. Do we still need both?

@Skyllarr Skyllarr changed the title [ELY-1996] SSLContext to support delegation to alternate instances based on peer information. [ELY-1996] [Community] SSLContext to support delegation to alternate instances based on peer information. Feb 28, 2024
@Skyllarr Skyllarr force-pushed the EAP7-1121 branch 2 times, most recently from c01ea92 to 32aedbc Compare March 4, 2024 18:34
@Skyllarr
Copy link
Contributor Author

@Skyllarr Just noticed we currently have this PR open in addition to #1488. Do we still need both?

I closed the other PR, this one is sufficient. This currently adds the new code to the new dynamic-ssl module that is private API, meaning it was not added to the javadoc maven plugin

@@ -196,6 +198,42 @@ private static AuthenticationConfiguration initializeConfiguration(final URI uri
return configuration;
}

/**
* Get all SSL contexts configured for this authentication context.
* This method is not part of the public API.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The org.wildfly.security.auth.client.AuthenticationContextConfigurationClient class is public API so this method is also public API as discussed on Zulip. Should the sentence "This method is not part of the public API." be removed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fjuma Yes this should be removed, good catch I removed it thank you!

Copy link
Contributor

@fjuma fjuma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Skyllarr This is looking good! Just some small questions.


/**
* Get the default SSL context that should be used when no other rules match, or {@link SSLContext#getDefault()} if there is none configured.
* This method is not part of the public API.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sentence is removed now

* This method is not part of the public API.
*
* @param authenticationContext the authentication context to examine (must not be {@code null})
* @return List of all configured SSL context belonging to the provided authentication context
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/context/contexts

Copy link
Contributor Author

@Skyllarr Skyllarr Mar 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed, thanks! I also added null check for authenticationContext to both methods

@Skyllarr
Copy link
Contributor Author

@darranl Please review, you can also check out the related wildfly-core PR wildfly/wildfly-core#4311 and wildfly PR wildfly/wildfly#13687

@darranl
Copy link
Contributor

darranl commented Mar 20, 2024

Do we consider any of the DynamicSSLContext classes as public api or is this only usable via the authentication client APIs?

@Skyllarr
Copy link
Contributor Author

Skyllarr commented Mar 20, 2024

Do we consider any of the DynamicSSLContext classes as public api or is this only usable via the authentication client APIs?

@darranl No it is not considered public API and that's why it is in a separate module. I also did not add it to the javadocs for public/supported APIs. On the client side it can be imported and initialized with the authentication context, see included tests, for example:

SSLContext dynamicSSLContext = new DynamicSSLContext(new DynamicSSLContextImpl(getAuthenticationContext("wildfly-config.xml")));

but it is not considered supported and so it is only for community users. The authentication client APIs do not have it as a dependency.

On the server side for outgoing connections it is only available via dynamic-client-ssl-context resource in the community stability level

@darranl
Copy link
Contributor

darranl commented Mar 21, 2024

This does not change any approvals here but I think we need to think at some point about "public API", I think at some point we may need to consider some APIs as public API in the context of community so they can be documented / have their APIs preserved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants