Skip to content

Preserve existing ACLs for the everyone principal - #918

Draft
kwin with Copilot wants to merge 2 commits into
developfrom
copilot/fix-everyone-principal-permissions
Draft

kwin with Copilot wants to merge 2 commits into
developfrom
copilot/fix-everyone-principal-permissions

Conversation

Copilot AI commented Sep 30, 2026 •

Copy link
Copy Markdown

When everyone is listed in YAML without an unmanaged-path rule, ACL reconciliation can remove its existing ACEs. This can revoke access to resources such as the login page.

  • Default protection: Apply unmanagedAcePathsRegex: .* to everyone when no per-principal regex is configured, excluding its ACLs from cleanup.
  • Opt-in management: Configure a narrower regex to manage selected paths.
- group_config:
  - everyone:
      unmanagedAcePathsRegex: .*

The regex above is applied by default when omitted.

Co-authored-by: kwin <185025+kwin@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix issue with permissions for the 'everyone' principal Preserve existing ACLs for the everyone principal Sep 30, 2026
Copilot AI requested a review from kwin September 30, 2026 11:31
@kwin

kwin commented Sep 30, 2026

Copy link
Copy Markdown
Member

@ghenzler WDYT? Not sure whether like this or rather bail out in case no unmanagedAcePathsRegex is set.

@kwin
kwin requested review from ghenzler and a balanced review from Copilot October 1, 2026 06:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Repository-level ACEs remain vulnerable because null paths bypass the unmanaged-path regex.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
What changed in this PR

Protects existing everyone ACLs from reconciliation cleanup by default.

Changes:

  • Defaults everyone’s unmanaged path regex to .*.
  • Adds regression coverage and documents opt-in path management.
File Description
AuthorizablesConfig.java Applies the default protection.
AuthorizablesConfigTest.java Tests content-path preservation.
AdvancedFeatures.md Documents the new default.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +36 to +38
if (StringUtils.equals(configBean.getPrincipalName(), Constants.PRINCIPAL_EVERYONE)
&& StringUtils.isEmpty(configBean.getUnmanagedAcePathsRegex())) {
configBean.setUnmanagedAcePathsRegex(".*");
@kwin

kwin commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Actually this is already evaluated via #535 which prevents clearing permissions for everyone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Permissions should not be removed for the 'everyone' principal

3 participants