Server-only upgrade to WildFly 25.0.1 (#9190)

* WF 25.0.1 upgrade light

* Re-enable adapters with old WF versions

* Put server-overlay and server-legacy-dist back to reduce size of PR changes

* Remove some more changes that are not needed

* Fix issues adding to provider properties

* Fix user-profile updates for tests

* tls fixes

* Set WF to 23 for adapter tests

Co-authored-by: Pedro Igor <pigor.craveiro@gmail.com>
This commit is contained in:
Stian Thorgersen 2021-12-17 12:12:41 +01:00 committed by GitHub
parent b03269440c
commit 31345c49b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 85 additions and 127 deletions

View file

@ -24,6 +24,13 @@
<version>16.0.0-SNAPSHOT</version>
</parent>
<properties>
<wildfly.version>23.0.2.Final</wildfly.version>
<wildfly.build-tools.version>1.2.13.Final</wildfly.build-tools.version>
<wildfly.core.version>15.0.1.Final</wildfly.core.version>
<org.wildfly.galleon-plugins.version>5.1.3.Final</org.wildfly.galleon-plugins.version>
</properties>
<artifactId>keycloak-wildfly-adapter-dist</artifactId>
<packaging>pom</packaging>
<name>Keycloak Adapter Overlay Distribution</name>

View file

@ -22,6 +22,13 @@
<version>16.0.0-SNAPSHOT</version>
</parent>
<properties>
<wildfly.version>23.0.2.Final</wildfly.version>
<wildfly.build-tools.version>1.2.13.Final</wildfly.build-tools.version>
<wildfly.core.version>15.0.1.Final</wildfly.core.version>
<org.wildfly.galleon-plugins.version>5.1.3.Final</org.wildfly.galleon-plugins.version>
</properties>
<modelVersion>4.0.0</modelVersion>
<groupId>org.keycloak</groupId>
@ -218,6 +225,7 @@
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-feature-pack</artifactId>
<version>${wildfly.version}</version>
<type>zip</type>
</dependency>
</dependencies>

View file

@ -15,7 +15,7 @@
~ limitations under the License.
-->
<build xmlns="urn:wildfly:feature-pack-build:1.1">
<build xmlns="urn:wildfly:feature-pack-build:3.1">
<dependencies>
<artifact name="${feature.parent}" />
</dependencies>

View file

@ -79,25 +79,20 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.wildfly.build</groupId>
<artifactId>wildfly-feature-pack-build-maven-plugin</artifactId>
<version>${wildfly.build-tools.version}</version>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<!-- Disable the standard copy-resources -->
<execution>
<id>feature-pack-build</id>
<id>copy-resources</id>
<phase>none</phase>
<goals>
<goal>build</goal>
<goal>copy-resources</goal>
</goals>
<phase>compile</phase>
<configuration>
<config-file>feature-pack-build.xml</config-file>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
@ -113,77 +108,17 @@
<descriptor>assembly.xml</descriptor>
</descriptors>
<recompressZippedFiles>true</recompressZippedFiles>
<finalName>${project.build.finalName}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<outputDirectory>target/</outputDirectory>
<workDirectory>target/assembly/work</workDirectory>
<outputDirectory>${project.build.directory}</outputDirectory>
<workDirectory>${project.build.directory}/assembly/work</workDirectory>
<tarLongFileMode>${assembly.tarLongFileMode}</tarLongFileMode>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-distribution-licenses-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>community</id>
<activation>
<property>
<name>!product</name>
</property>
</activation>
<properties>
<feature.parent>org.wildfly:wildfly-feature-pack</feature.parent>
</properties>
<dependencies>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-feature-pack</artifactId>
<type>zip</type>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</profile>
<profile>
<id>product</id>
<activation>
<property>
<name>product</name>
</property>
</activation>
<properties>
<feature.parent>org.jboss.eap:wildfly-feature-pack</feature.parent>
</properties>
<dependencies>
<dependency>
<groupId>org.jboss.eap</groupId>
<artifactId>wildfly-feature-pack</artifactId>
<version>${eap.version}</version>
<type>zip</type>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</profile>
</profiles>
</project>

View file

@ -31,6 +31,11 @@
<packaging>pom</packaging>
<properties>
<wildfly.version>23.0.2.Final</wildfly.version>
<wildfly.build-tools.version>1.2.13.Final</wildfly.build-tools.version>
<wildfly.core.version>15.0.1.Final</wildfly.core.version>
<org.wildfly.galleon-plugins.version>5.1.3.Final</org.wildfly.galleon-plugins.version>
<feature-pack.resources.directory>${basedir}/../../feature-packs/adapter-feature-pack/src/main/resources</feature-pack.resources.directory>
<version.org.wildfly.galleon-plugins>5.1.3.Final</version.org.wildfly.galleon-plugins>
<xmlFileSource>${feature-pack.resources.directory}/licenses/${product.slot}/licenses.xml</xmlFileSource>

View file

@ -64,13 +64,6 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wildfly.core</groupId>
<artifactId>wildfly-core-feature-pack-galleon-pruned</artifactId>
<type>pom</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wildfly.core</groupId>
<artifactId>wildfly-core-galleon-pack</artifactId>
@ -391,10 +384,6 @@
</property>
</activation>
<properties>
<feature.parent>org.wildfly:wildfly-galleon-pack</feature.parent>
</properties>
<dependencies>
<dependency>
<groupId>org.wildfly</groupId>
@ -418,10 +407,6 @@
</property>
</activation>
<properties>
<feature.parent>${ee.maven.groupId}:wildfly-ee-galleon-pack</feature.parent>
</properties>
<dependencies>
<dependency>
<groupId>${ee.maven.groupId}</groupId>
@ -467,7 +452,6 @@
transitives. Those poms ban transitives at their level -->
<exclude>org.wildfly.core:wildfly-core-feature-pack-common</exclude>
<exclude>org.wildfly.core:wildfly-core-feature-pack-ee-8-api</exclude>
<exclude>org.wildfly.core:wildfly-core-feature-pack-galleon-pruned</exclude>
<exclude>org.wildfly.core:wildfly-core-feature-pack-galleon-common</exclude>
<exclude>${ee.maven.groupId}:wildfly-servlet-feature-pack-common</exclude>
<exclude>${ee.maven.groupId}:wildfly-servlet-feature-pack-ee-8-api</exclude>

View file

@ -6,6 +6,7 @@
<feature spec="subsystem.infinispan.cache-container">
<param name="cache-container" value="ejb"/>
<param name="modules" value="[org.wildfly.clustering.ejb.infinispan]"/>
<param name="marshaller" value="PROTOSTREAM"/>
<param name="default-cache" value="dist"/>
<param name="aliases" value="[sfsb]"/>
<feature spec="subsystem.infinispan.cache-container.transport.jgroups">

View file

@ -5,6 +5,7 @@
<feature spec="subsystem.infinispan.cache-container">
<param name="cache-container" value="hibernate"/>
<param name="modules" value="[org.infinispan.hibernate-cache]"/>
<param name="marshaller" value="JBOSS"/>
<feature spec="subsystem.infinispan.cache-container.local-cache">
<param name="local-cache" value="local-query"/>
<feature spec="subsystem.infinispan.cache-container.local-cache.component.expiration">

View file

@ -4,6 +4,7 @@
<feature spec="subsystem.infinispan.cache-container">
<param name="cache-container" value="keycloak"/>
<param name="modules" value="[org.keycloak.keycloak-model-infinispan]"/>
<param name="marshaller" value="JBOSS"/>
<feature spec="subsystem.infinispan.cache-container.transport.jgroups">
<param name="lock-timeout" value="60000"/>
</feature>

View file

@ -5,6 +5,7 @@
<feature spec="subsystem.infinispan.cache-container">
<param name="cache-container" value="server"/>
<param name="modules" value="[org.wildfly.clustering.server]"/>
<param name="marshaller" value="PROTOSTREAM"/>
<param name="default-cache" value="default"/>
<param name="aliases" value="[singleton, cluster]"/>
<feature spec="subsystem.infinispan.cache-container.transport.jgroups">

View file

@ -5,6 +5,7 @@
<feature spec="subsystem.infinispan.cache-container">
<param name="cache-container" value="web"/>
<param name="modules" value="[org.wildfly.clustering.web.infinispan]"/>
<param name="marshaller" value="PROTOSTREAM"/>
<param name="default-cache" value="dist"/>
<feature spec="subsystem.infinispan.cache-container.transport.jgroups">
<param name="transport" value="jgroups"/>

View file

@ -6,6 +6,7 @@
<feature spec="subsystem.infinispan.cache-container">
<param name="cache-container" value="ejb"/>
<param name="modules" value="[org.wildfly.clustering.ejb.infinispan]"/>
<param name="marshaller" value="PROTOSTREAM"/>
<param name="aliases" value="[sfsb]"/>
<param name="default-cache" value="passivation"/>
<feature spec="subsystem.infinispan.cache-container.local-cache">

View file

@ -4,6 +4,7 @@
<feature spec="subsystem.infinispan.cache-container">
<param name="cache-container" value="hibernate"/>
<param name="modules" value="[org.infinispan.hibernate-cache]"/>
<param name="marshaller" value="JBOSS"/>
<feature spec="subsystem.infinispan.cache-container.local-cache">
<param name="local-cache" value="entity"/>
<feature spec="subsystem.infinispan.cache-container.local-cache.component.expiration">

View file

@ -4,6 +4,7 @@
<feature spec="subsystem.infinispan.cache-container">
<param name="cache-container" value="keycloak"/>
<param name="modules" value="[org.keycloak.keycloak-model-infinispan]"/>
<param name="marshaller" value="JBOSS"/>
<feature spec="subsystem.infinispan.cache-container.local-cache">
<param name="local-cache" value="realms"/>
<feature spec="subsystem.infinispan.cache-container.local-cache.memory.heap">

View file

@ -6,6 +6,7 @@
<feature spec="subsystem.infinispan.cache-container">
<param name="cache-container" value="server"/>
<param name="modules" value="[org.wildfly.clustering.server]"/>
<param name="marshaller" value="PROTOSTREAM"/>
<param name="default-cache" value="default"/>
<feature spec="subsystem.infinispan.cache-container.local-cache">
<param name="local-cache" value="default"/>

View file

@ -5,6 +5,7 @@
<feature spec="subsystem.infinispan.cache-container">
<param name="cache-container" value="web"/>
<param name="modules" value="[org.wildfly.clustering.web.infinispan]"/>
<param name="marshaller" value="PROTOSTREAM"/>
<param name="default-cache" value="passivation"/>
<feature spec="subsystem.infinispan.cache-container.local-cache">
<param name="local-cache" value="passivation"/>

View file

@ -43,7 +43,7 @@
<module>licenses-common</module>
<module>maven-plugins</module>
<module>server-dist</module>
<module>server-overlay</module>
<!--<module>server-overlay</module>-->
</modules>
<repositories>

12
pom.xml
View file

@ -53,10 +53,10 @@
<product.rhsso.version>7.5.0.GA</product.rhsso.version>
<product.build-time>${timestamp}</product.build-time>
<wildfly.version>23.0.2.Final</wildfly.version>
<wildfly.version>25.0.1.Final</wildfly.version>
<wildfly.build-tools.version>1.2.13.Final</wildfly.build-tools.version>
<eap.version>7.4.0.GA-redhat-00005</eap.version>
<wildfly.core.version>15.0.1.Final</wildfly.core.version>
<wildfly.core.version>17.0.3.Final</wildfly.core.version>
<jboss.as.version>7.2.0.Final</jboss.as.version>
<jboss.as.subsystem.test.version>7.5.22.Final-redhat-1</jboss.as.subsystem.test.version>
@ -199,7 +199,7 @@
<org.apache.kerby.kerby-asn1.version>2.0.0</org.apache.kerby.kerby-asn1.version>
<!-- WildFly Galleon Build related properties -->
<org.wildfly.galleon-plugins.version>5.1.3.Final</org.wildfly.galleon-plugins.version>
<org.wildfly.galleon-plugins.version>5.2.2.Final</org.wildfly.galleon-plugins.version>
<org.jboss.galleon.version>4.2.8.Final</org.jboss.galleon.version>
<!-- Galleon -->
@ -752,12 +752,6 @@
<artifactId>wildfly-ee</artifactId>
<version>${wildfly.version}</version>
</dependency>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-feature-pack</artifactId>
<version>${wildfly.version}</version>
<type>zip</type>
</dependency>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-galleon-pack</artifactId>

View file

@ -30,6 +30,7 @@
<name>App Server - Wildfly</name>
<properties>
<wildfly.version>23.0.2.Final</wildfly.version>
<app.server.jboss>wildfly</app.server.jboss>
<app.server.jboss.groupId>org.wildfly</app.server.jboss.groupId>

View file

@ -20,8 +20,8 @@ echo ** Adding max-detail-length to eventsStore spi **
echo ** Adding spi=userProfile with default provider and legacy-user-profile configuration of read-only attributes **
/subsystem=keycloak-server/spi=userProfile/:add(default-provider="declarative-user-profile")
/subsystem=keycloak-server/spi=userProfile/provider=declarative-user-profile/:add(properties={},enabled=true)
/subsystem=keycloak-server/spi=userProfile/provider=declarative-user-profile/:map-put(name=properties,key=read-only-attributes,value=[deniedFoo,deniedBar*,deniedSome/thing,deniedsome*thing])
/subsystem=keycloak-server/spi=userProfile/provider=declarative-user-profile/:map-put(name=properties,key=admin-read-only-attributes,value=[deniedSomeAdmin])
/subsystem=keycloak-server/spi=userProfile/provider=declarative-user-profile/:map-put(name=properties,key=read-only-attributes,value="[\"deniedFoo\",\"deniedBar*\",\"deniedSome/thing\",\"deniedsome*thing\"]")
/subsystem=keycloak-server/spi=userProfile/provider=declarative-user-profile/:map-put(name=properties,key=admin-read-only-attributes,value="[\"deniedSomeAdmin\"]")
echo ** Do not reuse connections for HttpClientProvider within testsuite **
/subsystem=keycloak-server/spi=connectionsHttpClient/provider=default/:map-put(name=properties,key=reuse-connections,value=false)

View file

@ -823,10 +823,12 @@ public class AuthServerTestEnricher {
Administration administration = new Administration(client);
Operations operations = new Operations(client);
if(!operations.exists(Address.coreService("management").and("security-realm", "UndertowRealm"))) {
client.execute("/core-service=management/security-realm=UndertowRealm:add()");
client.execute("/core-service=management/security-realm=UndertowRealm/server-identity=ssl:add(keystore-relative-to=jboss.server.config.dir,keystore-password=secret,keystore-path=keycloak.jks");
client.execute("/core-service=management/security-realm=UndertowRealm/authentication=truststore:add(keystore-relative-to=jboss.server.config.dir,keystore-password=secret,keystore-path=keycloak.truststore");
if(!operations.exists(Address.subsystem("elytron").and("server-ssl-context", "httpsSSC"))) {
client.execute("/subsystem=elytron/key-store=httpsKS:add(relative-to=jboss.server.config.dir,path=keycloak.jks,credential-reference={clear-text=secret},type=JKS)");
client.execute("/subsystem=elytron/key-manager=httpsKM:add(key-store=httpsKS,credential-reference={clear-text=secret})");
client.execute("/subsystem=elytron/key-store=twoWayTS:add(relative-to=jboss.server.config.dir,path=keycloak.truststore,credential-reference={clear-text=secret},type=JKS)");
client.execute("/subsystem=elytron/trust-manager=twoWayTM:add(key-store=twoWayTS)");
client.execute("/subsystem=elytron/server-ssl-context=httpsSSC:add(key-manager=httpsKM,protocols=[\"TLSv1.2\"],trust-manager=twoWayTM,want-client-auth=true)");
removeHttpsListener(client, administration);
addHttpsListener(client);

View file

@ -18,9 +18,7 @@
package org.keycloak.testsuite.arquillian;
import org.jboss.logging.Logger;
import org.wildfly.extras.creaper.commands.undertow.AddUndertowListener;
import org.wildfly.extras.creaper.commands.undertow.RemoveUndertowListener;
import org.wildfly.extras.creaper.commands.undertow.SslVerifyClient;
import org.wildfly.extras.creaper.commands.undertow.UndertowListenerType;
import org.wildfly.extras.creaper.core.CommandFailedException;
import org.wildfly.extras.creaper.core.online.OnlineManagementClient;
@ -54,12 +52,9 @@ public class ServerTestEnricherUtil {
public static boolean addHttpsListener(OnlineManagementClient client) {
try {
LOG.debug("Add Undertow HTTPS listener 'https'");
client.apply(new AddUndertowListener.HttpsBuilder("https", "default-server", "https")
.securityRealm("UndertowRealm")
.verifyClient(SslVerifyClient.REQUESTED)
.build());
client.execute("/subsystem=undertow/server=default-server/https-listener=https:add(ssl-context=httpsSSC, socket-binding=https)");
return true;
} catch (CommandFailedException e) {
} catch (Exception e) {
LOG.warn("Cannot add HTTPS listener 'https'");
return false;
}

View file

@ -50,6 +50,24 @@
<artifactId>keycloak-server-spi-private</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-core-spi</artifactId>
<scope>provided</scope>
<version>4.7.2.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<scope>provided</scope>
<version>4.7.2.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client-api</artifactId>
<scope>provided</scope>
<version>4.7.2.Final</version>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-services</artifactId>

View file

@ -26,7 +26,7 @@ import java.util.Properties;
import javax.servlet.ServletContext;
import org.jboss.dmr.ModelNode;
import org.jboss.logging.Logger;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
import org.jboss.resteasy.core.ResteasyContext;
import org.keycloak.Config;
import org.keycloak.common.util.Resteasy;
import org.keycloak.common.util.SystemEnvProperties;
@ -88,7 +88,7 @@ public class DMRConfigProviderFactory extends JsonConfigProviderFactory {
private Map<String, String> getPropertyOverrides() {
ServletContext context = ResteasyProviderFactory.getContextData(ServletContext.class);
ServletContext context = ResteasyContext.getContextData(ServletContext.class);
Map<String, String> propertyOverridesMap = new HashMap<>();
String propertyOverrides = context.getInitParameter(SERVER_CONTEXT_CONFIG_PROPERTY_OVERRIDES);

View file

@ -1,30 +1,29 @@
package org.keycloak.provider.wildfly;
import org.jboss.resteasy.core.Dispatcher;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
import org.jboss.resteasy.core.ResteasyContext;
import org.keycloak.common.util.ResteasyProvider;
public class Resteasy3Provider implements ResteasyProvider {
@Override
public <R> R getContextData(Class<R> type) {
return ResteasyProviderFactory.getInstance().getContextData(type);
return ResteasyContext.getContextData(type);
}
@Override
public void pushDefaultContextObject(Class type, Object instance) {
ResteasyProviderFactory.getInstance().getContextData(Dispatcher.class).getDefaultContextObjects()
ResteasyContext.getContextData(org.jboss.resteasy.spi.Dispatcher.class).getDefaultContextObjects()
.put(type, instance);
}
@Override
public void pushContext(Class type, Object instance) {
ResteasyProviderFactory.getInstance().pushContext(type, instance);
ResteasyContext.pushContext(type, instance);
}
@Override
public void clearContextData() {
ResteasyProviderFactory.getInstance().clearContextData();
ResteasyContext.clearContextData();
}
}

View file

@ -29,7 +29,7 @@ public class ProvidersListAttributeBuilder extends StringListAttributeDefinition
super("providers");
ModelNode provider = new ModelNode();
provider.add("classpath:${jboss.home.dir}/providers/*");
this.defaultValue = provider;
setDefaultValue(provider);
setAllowExpression(true);
setRequired(false);
}

View file

@ -49,7 +49,7 @@ public class ProviderResourceDefinition extends SimpleResourceDefinition {
.setAllowExpression(true)
.build();
protected static final ReloadRequiredWriteAttributeHandler WRITE_ATTR_HANDLER = new ReloadRequiredWriteAttributeHandler(ENABLED);
protected static final ReloadRequiredWriteAttributeHandler WRITE_ATTR_HANDLER = new ReloadRequiredWriteAttributeHandler(ENABLED, PROPERTIES);
protected ProviderResourceDefinition() {
super(PathElement.pathElement(TAG_NAME),

View file

@ -18,7 +18,7 @@
<!-- See src/resources/configuration/ReadMe.txt for how the configuration assembly works -->
<config default-supplement="default">
<extension-module>org.jboss.as.clustering.infinispan</extension-module>
<subsystem xmlns="urn:jboss:domain:infinispan:12.0">
<subsystem xmlns="urn:jboss:domain:infinispan:13.0">
<?CACHE-CONTAINERS?>
</subsystem>
<supplement name="default">