Dedicated TARGET_FILTER permissions
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- java
- Ambito
- api, authorization
Direzione di ricerca
Start with SpPermission.java and getAuthorities(), then inspect MgmtTargetFilterQueryRestApi or its resource implementation to trace the existing TARGET permission checks. Update docs/authorization.md to document the separate permissions. Done means target-filter CRUD uses the new permissions and the documentation reflects them.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem / limitation
Target Filter Query CRUD operations are currently gated behind the generic TARGET permissions (CREATE_TARGET, READ_TARGET, UPDATE_TARGET, DELETE_TARGET). This makes it impossible to grant a user the ability to register devices without also granting them the ability to create, modify, or delete target filters.
Example: A "factory" user whose sole responsibility is registering devices (targets) via POST /rest/v1/targets must be granted CREATE_TARGET — but this same permission also allows POST /rest/v1/targetfilters, which is an unrelated and potentially dangerous operation.
Expected Behavior
Target Filter Query operations should be protected by their own permission group, following the existing pattern:
CREATE_TARGET_FILTERREAD_TARGET_FILTERUPDATE_TARGET_FILTERDELETE_TARGET_FILTER
This is consistent with how other resource types are handled (e.g. CREATE_ROLLOUT, CREATE_DISTRIBUTION_SET, etc.).
Suggested Implementation
- Add constants to
SpPermission.java:public static final String TARGET_FILTER = "TARGET_FILTER"; public static final String CREATE_TARGET_FILTER = CREATE_PREFIX + TARGET_FILTER; public static final String READ_TARGET_FILTER = READ_PREFIX + TARGET_FILTER; public static final String UPDATE_TARGET_FILTER = UPDATE_PREFIX + TARGET_FILTER; public static final String DELETE_TARGET_FILTER = DELETE_PREFIX + TARGET_FILTER; - Include the new group in
getAuthorities(). - Apply the new permissions in
MgmtTargetFilterQueryRestApi(or its resource implementation),
replacing the currentTARGETpermission checks. - Update documentation (
docs/authorization.md).
Current Behavior (from API docs)
| Operation | Required permission |
|---|---|
GET /targetfilters |
READ_TARGET |
POST /targetfilters |
CREATE_TARGET |
PUT /targetfilters/{id} |
UPDATE_TARGET |
DELETE /targetfilters/{id} |
DELETE_TARGET |
Use Case
We are defining a production provisioning workflow for devices that lack a TPM or Secure Element, and therefore cannot use mTLS for authentication out of the box.
The approach we have settled on is to inject a per-device security token immediately after the initial firmware flash, while the device is still on the production line. This operation is performed by a restricted "factory" user whose sole responsibility is registering devices and setting their security token (this will be partially automated).
To follow the principle of least privilege, this user should only be granted CREATE_TARGET + READ_TARGET. However, those same permissions currently also allow managing target filters, which drive auto-assignment rollouts — a completely unrelated and potentially destructive capability.
Introducing a dedicated TARGET_FILTER permission group would allow operators to precisely scope
factory accounts without exposing rollout automation controls.
- Lingua principale
- Java
- Stelle
- 601
- Fork
- 228
- Merge medio
- 15h 48m
- PR unite (30g)
- 62
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di eclipse-hawkbit/hawkbit
-
hawkbit-dmf-server 1.1.0 does not start: NoClassDefFoundError jakarta/servlet/ServletResponseAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
eclipse-hawkbit/hawkbit#3429 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Action status code catalog: name, description and severity for reported status codesForse già presa @strailov l’ha presa 4 giorni fa. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
eclipse-hawkbit/hawkbit#3436 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Configurable automatic retries for failed actions (policy, backoff, rollout and auto-assignment support)Forse di nuovo libera @strailov l’ha presa 85 giorni fa e non c’è nessuna pull request aperta. Apertafeature request
eclipse-hawkbit/hawkbit#3251 · 3 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
IN_SYNC and rollout success can be recorded while the device still runs the old imageForse di nuovo libera @denislavprinov l’ha presa 117 giorni fa e non c’è nessuna pull request aperta. Aperta
eclipse-hawkbit/hawkbit#3185 · 1 reazione · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
eclipse-hawkbit/hawkbit#2976 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di eclipse-hawkbit/hawkbit
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
quarkusio/quarkus-agent-mcp#302 ·
I maintainer di solito rispondono entro 2 giorni
-
build
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
MetricsHub/metricshub-community#1472 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
IdentityArrayObjectSet iterator remove may throw ArrayIndexOutOfBoundsExceptionForse già presa @jiteshkhatri11 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
javapathfinder/jpf-core#660 · 1 commento ·