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

[3.11] 3.11.2 backports 1 #41093

Merged
merged 23 commits into from
Jun 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
e06e209
WebSockets Next: provide strategies to process unhandled failures
mkouba May 15, 2024
6c7307c
WebSocket NEXT: automatically close connection when token expires
michalvavrik May 28, 2024
0c6dcbc
Kafka commit strategy: clarify risk of message loss on latest
vsevel Jun 5, 2024
3f00f74
Replace 'bare mortal' with a more idiomatic English expression
holly-cummins Jun 5, 2024
1f4d11f
Add docs note about writing extension with Java and Maven
geoand Jun 6, 2024
517d019
Make sure quarkusXXXCompileOnlyConfiguration extends from platform co…
aloubyansky Jun 6, 2024
faa319d
Config doc - Don't enforce the height
gsmet Jun 5, 2024
91997dd
added missing annotation parameter name
andlinger Jun 6, 2024
ff92188
Fix invalid webjar to show 404
phillip-kruger Jun 6, 2024
807f45f
Prevent abort because of a throwable
brunobat May 15, 2024
2a82618
WebSockets Next client: encode path param values automatically
mkouba Jun 5, 2024
5354da4
Improve OIDC warning when a session encryption key is generated
sberyozkin May 31, 2024
f15e52a
Fix open-in-ide
phillip-kruger Jun 6, 2024
fcd9579
Qute: fix regression for optimized generated value resolvers
mkouba Jun 7, 2024
63cd6dc
Fix callouts
c15yi Jun 7, 2024
316a9bb
Rephrase
c15yi Jun 7, 2024
8140a9a
Make sure we transmit the actual debug port to next dev mode run
gsmet Jun 7, 2024
f1225b0
Fix log warning when application port is already used
gsmet Jun 6, 2024
a6b3e24
Fix encoding of '?' in query parameter values by Encode.encodeQueryPa…
thomasdarimont Jun 7, 2024
4c0b199
Docs: clarify named queries for Panache
FroMage Jun 7, 2024
a16cb8a
Fix GZIP max input in native mode
michalvavrik Jun 7, 2024
28a78a7
Bump up quarkus-build-caching-extension to 1.2
jprinet Jun 10, 2024
acb6fa7
Update Agraol exception message in docs
yrodiere Jun 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .mvn/extensions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<extension>
<groupId>com.gradle</groupId>
<artifactId>quarkus-build-caching-extension</artifactId>
<version>1.1</version>
<version>1.2</version>
</extension>
<extension>
<groupId>io.quarkus.develocity</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,6 @@ public B debug(String debug) {
return (B) this;
}

@SuppressWarnings("unchecked")
public B debugPortOk(Boolean debugPortOk) {
QuarkusDevModeLauncher.this.debugPortOk = debugPortOk;
return (B) this;
}

@SuppressWarnings("unchecked")
public B suspend(String suspend) {
QuarkusDevModeLauncher.this.suspend = suspend;
Expand Down Expand Up @@ -303,10 +297,10 @@ public R build() throws Exception {

private List<String> args = new ArrayList<>(0);
private String debug;
private Boolean debugPortOk;
private String suspend;
private String debugHost = "localhost";
private String debugPort = "5005";
private String actualDebugPort;
private File projectDir;
private File buildDir;
private File outputDir;
Expand Down Expand Up @@ -390,12 +384,13 @@ protected void prepare() throws Exception {

if (debug != null && debug.equalsIgnoreCase("client")) {
args.add("-agentlib:jdwp=transport=dt_socket,address=" + debugHost + ":" + port + ",server=n,suspend=" + suspend);
actualDebugPort = String.valueOf(port);
} else if (debug == null || !debug.equalsIgnoreCase("false")) {
// if the debug port is used, we want to make an effort to pick another one
// if we can't find an open port, we don't fail the process launch, we just don't enable debugging
// Furthermore, we don't check this on restarts, as the previous process is still running
boolean warnAboutChange = false;
if (debugPortOk == null) {
if (actualDebugPort == null) {
int tries = 0;
while (true) {
boolean isPortUsed;
Expand All @@ -408,20 +403,19 @@ protected void prepare() throws Exception {
isPortUsed = false;
}
if (!isPortUsed) {
debugPortOk = true;
actualDebugPort = String.valueOf(port);
break;
}
if (++tries >= 5) {
debugPortOk = false;
break;
} else {
port = getRandomPort();
}
}
}
if (debugPortOk) {
if (actualDebugPort != null) {
if (warnAboutChange) {
warn("Changed debug port to " + port + " because of a port conflict");
warn("Changed debug port to " + actualDebugPort + " because of a port conflict");
}
args.add("-agentlib:jdwp=transport=dt_socket,address=" + debugHost + ":" + port + ",server=y,suspend="
+ suspend);
Expand Down Expand Up @@ -547,8 +541,8 @@ public List<String> args() {
return args;
}

public Boolean getDebugPortOk() {
return debugPortOk;
public String getActualDebugPort() {
return actualDebugPort;
}

protected abstract boolean isDebugEnabled();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ public static void run(Application application, Class<? extends QuarkusApplicati
} else {
for (Integer port : ports) {
applicationLogger
.warnf("Use 'ss -anop | grep %d' or 'netstat -anop | grep %d' to identify the process occupying the port.",
.warnf("Use 'ss -anop | grep %1$d' or 'netstat -anop | grep %1$d' to identify the process occupying the port.",
port);
}
applicationLogger.warn("You can try to kill it with 'kill -9 <pid>'.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,8 @@ private void setUpDeploymentConfiguration() {
private void setUpCompileOnlyConfiguration() {
if (!project.getConfigurations().getNames().contains(compileOnlyConfigurationName)) {
project.getConfigurations().register(compileOnlyConfigurationName, config -> {
config.extendsFrom(project.getConfigurations().getByName(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME));
config.extendsFrom(project.getConfigurations().getByName(platformConfigurationName),
project.getConfigurations().getByName(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME));
config.shouldResolveConsistentlyWith(getDeploymentConfiguration());
config.setCanBeConsumed(false);
});
Expand Down
17 changes: 10 additions & 7 deletions devtools/maven/src/main/java/io/quarkus/maven/DevMojo.java
Original file line number Diff line number Diff line change
Expand Up @@ -478,15 +478,19 @@ public void close() throws IOException {
}
if (!changed.isEmpty()) {
getLog().info("Changes detected to " + changed + ", restarting dev mode");

// stop the runner before we build the new one as the debug port being free
// is tested when building the runner
runner.stop();

final DevModeRunner newRunner;
try {
bootstrapId = handleAutoCompile();
newRunner = new DevModeRunner(runner.launcher.getDebugPortOk(), bootstrapId);
newRunner = new DevModeRunner(runner.launcher.getActualDebugPort(), bootstrapId);
} catch (Exception e) {
getLog().info("Could not load changed pom.xml file, changes not applied", e);
continue;
}
runner.stop();
newRunner.run();
runner = newRunner;
}
Expand Down Expand Up @@ -1171,8 +1175,8 @@ private DevModeRunner(String bootstrapId) throws Exception {
launcher = newLauncher(null, bootstrapId);
}

private DevModeRunner(Boolean debugPortOk, String bootstrapId) throws Exception {
launcher = newLauncher(debugPortOk, bootstrapId);
private DevModeRunner(String actualDebugPort, String bootstrapId) throws Exception {
launcher = newLauncher(actualDebugPort, bootstrapId);
}

Collection<Path> pomFiles() {
Expand Down Expand Up @@ -1226,7 +1230,7 @@ void stop() throws InterruptedException {
}
}

private QuarkusDevModeLauncher newLauncher(Boolean debugPortOk, String bootstrapId) throws Exception {
private QuarkusDevModeLauncher newLauncher(String actualDebugPort, String bootstrapId) throws Exception {
String java = null;
// See if a toolchain is configured
if (toolchainManager != null) {
Expand All @@ -1244,8 +1248,7 @@ private QuarkusDevModeLauncher newLauncher(Boolean debugPortOk, String bootstrap
.suspend(suspend)
.debug(debug)
.debugHost(debugHost)
.debugPort(debugPort)
.debugPortOk(debugPortOk)
.debugPort(actualDebugPort)
.deleteDevJar(deleteDevJar);

setJvmArgs(builder);
Expand Down
6 changes: 6 additions & 0 deletions docs/src/main/asciidoc/building-my-first-extension.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,15 @@
:prerequisites-no-graalvm:
include::{includes}/prerequisites.adoc[]

[CAUTION]
====
Writing extension with any other than Java and Maven has **not** been tested by the Quarkus team so your mileage may vary

Check warning on line 34 in docs/src/main/asciidoc/building-my-first-extension.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [Quarkus.TermsWarnings] Consider using 'might (for possiblity)' or 'can (for ability)' rather than 'may' unless updating existing content that uses the term. Raw Output: {"message": "[Quarkus.TermsWarnings] Consider using 'might (for possiblity)' or 'can (for ability)' rather than 'may' unless updating existing content that uses the term.", "location": {"path": "docs/src/main/asciidoc/building-my-first-extension.adoc", "range": {"start": {"line": 34, "column": 114}}}, "severity": "WARNING"}
if you stray off this path
====

== Basic Concepts

Check warning on line 38 in docs/src/main/asciidoc/building-my-first-extension.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [Quarkus.Headings] Use sentence-style capitalization in 'Basic Concepts'. Raw Output: {"message": "[Quarkus.Headings] Use sentence-style capitalization in 'Basic Concepts'.", "location": {"path": "docs/src/main/asciidoc/building-my-first-extension.adoc", "range": {"start": {"line": 38, "column": 4}}}, "severity": "INFO"}

First things first, we will need to start with some basic concepts.

Check warning on line 40 in docs/src/main/asciidoc/building-my-first-extension.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [Quarkus.Fluff] Depending on the context, consider using 'Rewrite the sentence, or use 'must', instead of' rather than 'need to'. Raw Output: {"message": "[Quarkus.Fluff] Depending on the context, consider using 'Rewrite the sentence, or use 'must', instead of' rather than 'need to'.", "location": {"path": "docs/src/main/asciidoc/building-my-first-extension.adoc", "range": {"start": {"line": 40, "column": 29}}}, "severity": "INFO"}

* JVM mode vs Native mode
** Quarkus is first and foremost a Java framework, that means you can develop, package and run classic JAR applications, that's what we call *JVM mode*.
Expand Down
2 changes: 1 addition & 1 deletion docs/src/main/asciidoc/datasource.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,7 @@ would result in an exception similar to this:
Caused by: java.sql.SQLException: Exception in association of connection to existing transaction
at io.agroal.narayana.NarayanaTransactionIntegration.associate(NarayanaTransactionIntegration.java:130)
...
Caused by: java.sql.SQLException: Unable to enlist connection to existing transaction
Caused by: java.sql.SQLException: Failed to enlist. Check if a connection from another datasource is already enlisted to the same transaction
at io.agroal.narayana.NarayanaTransactionIntegration.associate(NarayanaTransactionIntegration.java:121)
...
----
Expand Down
7 changes: 6 additions & 1 deletion docs/src/main/asciidoc/deploying-to-kubernetes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1462,8 +1462,13 @@ spec:
protocol: "TCP"
serviceAccount: "kubernetes-quickstart"
----
<1> The provided replicas,
<2> labels and
<3> environment variables were retained.
<4> However, the image and
<5> the container port were modified.

The provided replicas <1>, labels <2> and environment variables <3> were retained. However, the image <4> and container port <5> were modified. Moreover, the default annotations have been added.
Moreover, the default annotations have been added.

[NOTE]
====
Expand Down
4 changes: 2 additions & 2 deletions docs/src/main/asciidoc/hibernate-orm-panache.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -792,8 +792,8 @@ public class Person extends PanacheEntity {

[WARNING]
====
Named queries can only be defined inside your Jakarta Persistence entity classes (being the Panache entity class, or the repository parameterized type),
or on one of its super classes.
Named queries can only be defined inside your Jakarta Persistence entity classes,
or on one of their super classes.
====

=== Query parameters
Expand Down
4 changes: 2 additions & 2 deletions docs/src/main/asciidoc/hibernate-reactive-panache.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -553,8 +553,8 @@ public class Person extends PanacheEntity {

[WARNING]
====
Named queries can only be defined inside your Jakarta Persistence entity classes (being the Panache entity class, or the repository parameterized type),
or on one of its super classes.
Named queries can only be defined inside your Jakarta Persistence entity classes,
or on one of their super classes.
====

=== Query parameters
Expand Down
4 changes: 3 additions & 1 deletion docs/src/main/asciidoc/kafka.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -360,8 +360,10 @@
If `checkpoint.unsynced-state-max-age.ms` is set to less than or equal to 0, it does not perform any health check verification.
For more information, see <<stateful-processing-checkpointing>>

- `latest` commits the record offset received by the Kafka consumer as soon as the associated message is acknowledged (if the offset is higher than the previously committed offset).

Check warning on line 363 in docs/src/main/asciidoc/kafka.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [Quarkus.TermsSuggestions] Depending on the context, consider using 'because' or 'while' rather than 'as'. Raw Output: {"message": "[Quarkus.TermsSuggestions] Depending on the context, consider using 'because' or 'while' rather than 'as'.", "location": {"path": "docs/src/main/asciidoc/kafka.adoc", "range": {"start": {"line": 363, "column": 58}}}, "severity": "INFO"}

Check warning on line 363 in docs/src/main/asciidoc/kafka.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [Quarkus.TermsSuggestions] Depending on the context, consider using 'because' or 'while' rather than 'as'. Raw Output: {"message": "[Quarkus.TermsSuggestions] Depending on the context, consider using 'because' or 'while' rather than 'as'.", "location": {"path": "docs/src/main/asciidoc/kafka.adoc", "range": {"start": {"line": 363, "column": 66}}}, "severity": "INFO"}
This strategy provides at-least-once delivery if the channel processes the message without performing any asynchronous processing.
This strategy provides at-least-once delivery if the channel processes the message without performing any asynchronous processing. Specifically, the offset of the most recent acknowledged
message will always be committed, even if older messages have not finished being processed. In case of an incident such as a crash, processing would restart after the last commit, leading
to older messages never being successfully and fully processed, which would appear as message loss.
This strategy should not be used in high load environment, as offset commit is expensive. However, it reduces the risk of duplicates.

- `ignore` performs no commit. This strategy is the default strategy when the consumer is explicitly configured with `enable.auto.commit` to true.
Expand Down
2 changes: 1 addition & 1 deletion docs/src/main/asciidoc/mutiny-primer.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
and pull requests should be submitted there:
https://github.com/quarkusio/quarkus/tree/main/docs/src/main/asciidoc
////
= Mutiny - Async for bare mortal
= Mutiny - Async for mere mortals

Check warning on line 6 in docs/src/main/asciidoc/mutiny-primer.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [Quarkus.Spelling] Use correct American English spelling. Did you really mean 'Async'? Raw Output: {"message": "[Quarkus.Spelling] Use correct American English spelling. Did you really mean 'Async'?", "location": {"path": "docs/src/main/asciidoc/mutiny-primer.adoc", "range": {"start": {"line": 6, "column": 12}}}, "severity": "WARNING"}
include::_attributes.adoc[]
:categories: reactive
:topics: mutiny,reactive
Expand Down
4 changes: 0 additions & 4 deletions docs/src/main/asciidoc/stylesheet/config.css
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,11 @@ table.configuration-reference.tableblock > tbody > tr:nth-child(even) > th {
table.configuration-reference.tableblock > tbody > tr > th {
background-color: transparent;
font-size: 1rem;
height: 60px;
border: none;
border-bottom: 1px solid #4695eb;
vertical-align: bottom;
}

table.configuration-reference.tableblock > tbody > tr:first-child > th {
height: 30px;
}
table.configuration-reference.tableblock > tbody > tr > th:nth-child(2),
table.configuration-reference.tableblock > tbody > tr > th:nth-child(3),
table.configuration-reference.tableblock > tbody > tr > td:nth-child(2),
Expand Down
18 changes: 13 additions & 5 deletions docs/src/main/asciidoc/websockets-next-reference.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

include::{includes}/extension-status.adoc[]

The `quarkus-websockets-next` extension provides a modern declarative API to define WebSocket server and client endpoints.

== The WebSocket protocol

The _WebSocket_ protocol, documented in the https://datatracker.ietf.org/doc/html/rfc6455[RFC6455], establishes a standardized method for creating a bidirectional communication channel between a client and a server through a single TCP connection.
Expand Down Expand Up @@ -137,13 +139,13 @@

[source, java]
----
@WebSocket("/ws/v{version}")
@WebSocket(path = "/ws/v{version}")
public class MyPrimaryWebSocket {

@OnTextMessage
void consumePrimary(String s) { ... }

@WebSocket("/products/{id}")
@WebSocket(path = "/products/{id}")
public static class MyNestedWebSocket {

@OnTextMessage
Expand All @@ -161,12 +163,12 @@

[source,java]
----
@WebSocket("/ws")
@WebSocket(path = "/ws")
public class MyWebSocket {
// Singleton scoped bean
}

@WebSocket("/ws")
@WebSocket(path = "/ws")
@ApplicationScoped
public class MyRequestScopedWebSocket {
// Application scoped.
Expand Down Expand Up @@ -418,7 +420,7 @@

[source, java]
----
@WebSocket("/foo")
@WebSocket(path = "/foo")
@OnOpen
public Multi<Integer> streaming() {
return Multi.createFrom().ticks().every(Duration.ofSecond(1))
Expand Down Expand Up @@ -455,8 +457,12 @@
However, each method must declare a different error parameter.
The method that declares a most-specific supertype of the actual exception is selected.

NOTE: The `@io.quarkus.websockets.next.OnError` annotation can be also used to declare a global error handler, i.e. a method that is not declared on a WebSocket endpoint. Such a method may not accept `@PathParam` paremeters. Error handlers declared on an endpoint take precedence over the global error handlers.

Check warning on line 460 in docs/src/main/asciidoc/websockets-next-reference.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [Quarkus.TermsWarnings] Consider using 'that is' rather than 'i.e.' unless updating existing content that uses the term. Raw Output: {"message": "[Quarkus.TermsWarnings] Consider using 'that is' rather than 'i.e.' unless updating existing content that uses the term.", "location": {"path": "docs/src/main/asciidoc/websockets-next-reference.adoc", "range": {"start": {"line": 460, "column": 101}}}, "severity": "WARNING"}

Check warning on line 460 in docs/src/main/asciidoc/websockets-next-reference.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [Quarkus.TermsWarnings] Consider using 'might (for possiblity)' or 'can (for ability)' rather than 'may' unless updating existing content that uses the term. Raw Output: {"message": "[Quarkus.TermsWarnings] Consider using 'might (for possiblity)' or 'can (for ability)' rather than 'may' unless updating existing content that uses the term.", "location": {"path": "docs/src/main/asciidoc/websockets-next-reference.adoc", "range": {"start": {"line": 460, "column": 175}}}, "severity": "WARNING"}

When an error occurs but no error handler can handle the failure, Quarkus uses the strategy specified by `quarkus.websockets-next.server.unhandled-failure-strategy` and `quarkus.websockets-next.client.unhandled-failure-strategy`, respectively.

Check warning on line 462 in docs/src/main/asciidoc/websockets-next-reference.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [Quarkus.Fluff] Depending on the context, consider using 'Rewrite the sentence to be more precise, instead of using' rather than 'respectively'. Raw Output: {"message": "[Quarkus.Fluff] Depending on the context, consider using 'Rewrite the sentence to be more precise, instead of using' rather than 'respectively'.", "location": {"path": "docs/src/main/asciidoc/websockets-next-reference.adoc", "range": {"start": {"line": 462, "column": 220}}}, "severity": "INFO"}
By default, the connection is closed.
Alternatively, an error message can be logged or no operation performed.

== Access to the WebSocketConnection

The `io.quarkus.websockets.next.WebSocketConnection` object represents the WebSocket connection.
Expand Down Expand Up @@ -633,8 +639,10 @@
quarkus.http.auth.permission.secured.policy=authenticated
----

Other options for securing HTTP upgrade requests, such as using the security annotations, will be explored in the future.

Check warning on line 642 in docs/src/main/asciidoc/websockets-next-reference.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [Quarkus.TermsSuggestions] Depending on the context, consider using 'by using' or 'that uses' rather than 'using'. Raw Output: {"message": "[Quarkus.TermsSuggestions] Depending on the context, consider using 'by using' or 'that uses' rather than 'using'.", "location": {"path": "docs/src/main/asciidoc/websockets-next-reference.adoc", "range": {"start": {"line": 642, "column": 58}}}, "severity": "INFO"}

NOTE: When OpenID Connect extension is used and token expires, Quarkus automatically closes connection.

[[websocket-next-configuration-reference]]
== Configuration reference

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -642,7 +642,10 @@ public enum Strategy {
* either `quarkus.oidc.credentials.secret` or `quarkus.oidc.credentials.client-secret.value` is checked.
* Finally, `quarkus.oidc.credentials.jwt.secret` which can be used for `client_jwt_secret` authentication is
* checked.
* The secret is auto-generated if it remains uninitialized after checking all of these properties.
* The secret is auto-generated every time an application starts if it remains uninitialized after checking all of these
* properties.
* Generated secret can not decrypt the session cookie encrypted before the restart, therefore a user re-authentication
* will be required.
* <p>
* The length of the secret used to encrypt the tokens should be at least 32 characters long.
* A warning is logged if the secret length is less than 16 characters.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,12 @@ private static SecretKey createTokenEncSecretKey(OidcTenantConfig config) {
}
try {
if (encSecret == null) {
LOG.warn("Secret key for encrypting tokens in a session cookie is missing, auto-generating it");
LOG.warn(
"Secret key for encrypting OIDC authorization code flow tokens in a session cookie is not configured, auto-generating it."
+ " Note that a new secret will be generated after a restart, thus making it impossible to decrypt the session cookie and requiring a user re-authentication."
+ " Use 'quarkus.oidc.token-state-manager.encryption-secret' to configure an encryption secret."
+ " Alternatively, disable session cookie encryption with 'quarkus.oidc.token-state-manager.encryption-required=false'"
+ " but only if it is considered to be safe in your application's network.");
return generateSecretKey();
}
byte[] secretBytes = encSecret.getBytes(StandardCharsets.UTF_8);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1001,7 +1001,7 @@ public String apply(String id) {
// Register all param declarations as targets of implicit value resolvers
for (ParameterDeclaration paramDeclaration : templateAnalysis.parameterDeclarations) {
Type type = TypeInfos.resolveTypeFromTypeInfo(paramDeclaration.getTypeInfo());
if (type != null) {
if (type != null && !implicitClassToMembersUsed.containsKey(type.name())) {
implicitClassToMembersUsed.put(type.name(), new HashSet<>());
}
}
Expand Down
Loading
Loading