Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
title: JWT Authentication `blockUnknown` now defaults to `true`, blocking unauthenticated requests by default. Previously the code defaulted to `false` despite the reference guide documenting `true`. Users relying on pass-through must explicitly set `blockUnknown` to `false` in their security.json.
type: changed
authors:
- name: Jan Høydahl
url: https://home.apache.org/phonebook.html?uid=janhoy
links:
- name: SOLR-18215
url: https://issues.apache.org/jira/browse/SOLR-18215
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ public void init(Map<String, Object> pluginConfig) {
}

blockUnknown =
Boolean.parseBoolean(String.valueOf(pluginConfig.getOrDefault(PARAM_BLOCK_UNKNOWN, false)));
Boolean.parseBoolean(String.valueOf(pluginConfig.getOrDefault(PARAM_BLOCK_UNKNOWN, true)));
requireIssuer =
Comment thread
janhoy marked this conversation as resolved.
Boolean.parseBoolean(
String.valueOf(pluginConfig.getOrDefault(PARAM_REQUIRE_ISSUER, "true")));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,7 @@ public void wellKnownConfigNoHeaderPassThrough() {
.toString();
testConfig.put("wellKnownUrl", wellKnownUrl);
testConfig.remove("jwk");
testConfig.put("blockUnknown", false);
plugin.init(testConfig);
JWTAuthPlugin.JWTAuthenticationResponse resp = plugin.authenticate(null);
assertEquals(PASS_THROUGH, resp.getAuthCode());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ Former users of `solr.api.v2.enabled` looking to upgrade to Solr 10.1 or newer s

Users who deploy a proxy in front of Solr should also review this setup to ensure that it allows access to the v2 API root path, `/api`.

=== JWT Authentication

The `blockUnknown` setting in the JWT Authentication plugin now defaults to `true`, meaning requests without a valid JWT token are blocked by default.
In Solr 10.0, the code default was `false` (pass-through), which contradicted the reference guide documentation that described `true` as the default.
Users upgrading from 10.0 who relied on the pass-through behavior must explicitly set `blockUnknown: false` in their `security.json`.
Comment thread
janhoy marked this conversation as resolved.
Outdated

== Solr 10.0

=== Solr Jetty parameters
Expand Down
4 changes: 2 additions & 2 deletions solr/webapp/web/js/angular/controllers/security.js
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ solrAdminApp.controller('SecurityController', function ($scope, $timeout, $cooki
$scope.hideAll();

$scope.tls = false;
$scope.blockUnknown = "false"; // default setting
$scope.blockUnknown = "true"; // default setting
$scope.realmName = "solr";
$scope.forwardCredentials = "false";
$scope.multiAuthWithBasic = false;
Expand Down Expand Up @@ -371,7 +371,7 @@ solrAdminApp.controller('SecurityController', function ($scope, $timeout, $cooki

//console.log(">> authn: "+JSON.stringify(authn));

$scope.blockUnknown = authn["blockUnknown"] === true ? "true" : "false";
$scope.blockUnknown = authn["blockUnknown"] === false ? "false" : "true";
Comment thread
janhoy marked this conversation as resolved.
Outdated
$scope.forwardCredentials = authn["forwardCredentials"] === true ? "true" : "false";

if ("realm" in authn) {
Expand Down
Loading