Nein: Einen JAAS-flag wie required, requisite, sufficient oder optional setzt du in Elytron normalerweise nicht, weil Elytron nicht auf Login-Module-Flags basiert, sondern auf Realms, Security-Domains...
Wie setze ich ein JBoss-Flag programmatisch?
Antwort vom**Ja – in JBoss/WildFly setzt du ein „Flag“ programmatisch entweder als System-Property, als Umgebungswert in der Konfiguration oder als eigenes Laufzeit-Merkmal in deinem Code; entscheidend ist, ob der Wert serverweit, deploy-spezifisch oder nur zur Laufzeit gelten soll.** ## Der praktische Unterschied Wenn du wirklich ein **JBoss-Flag** meinst, ist meist eine **System Property** gemeint. Die kannst du im Code so setzen: ```java System.setProperty("mein.flag", "true"); ``` Auslesen dann mit: ```java boolean enabled = Boolean.parseBoolean(System.getProperty("mein.flag", "false")); ``` Das funktioniert, aber nur zuverlässig, wenn dein Code die Property **selbst nutzt**. Für viele Server-Einstellungen bringt das **zur Laufzeit setzen nichts**, weil JBoss/WildFly zahlreiche Werte schon **beim Start** einliest. ## Was in der Praxis wichtig ist `System.setProperty(...)` ist sinnvoll für: - eigene Feature-Flags im Anwendungscode - Bibliotheken, die Properties dynamisch prüfen - einfache globale Schalter innerhalb derselben JVM Nicht sinnvoll ist es für: - zentrale Server-Konfiguration, die schon beim Booten verarbeitet wurde - Subsysteme, die Änderungen zur Laufzeit nicht neu einlesen - saubere produktive Konfiguration Die praktische Konsequenz: **Wenn das Flag das Verhalten des Servers selbst ändern soll, musst du es meist vor dem Start setzen, nicht erst im Java-Code.** ## Bessere Varianten je nach Ziel ### 1. Eigenes Feature-Flag im Code Dann ist `System.setProperty` okay, oft aber schlechter als eine klare Konfigurationsklasse oder `MicroProfile Config`. ### 2. Flag für Deployment-Konfiguration Dann besser über: - Startparameter `-Dmein.flag=true` - `standalone.xml` - Umgebungsvariablen - Konfigurationsframework der Anwendung ### 3. Flag in JBoss CLI setzen Wenn es eine echte Server-Property ist, wird sie typischerweise per CLI oder Konfiguration gesetzt, nicht aus der Anwendung heraus. ## Typischer Denkfehler Viele meinen mit „programmatisch setzen“: *im laufenden Deployment per Java ändern und JBoss reagiert sofort darauf*. Genau das klappt oft **nicht**, weil der Serverwert bereits gecacht oder nur beim Start ausgewertet wurde. ## Klare Empfehlung **Wenn das Flag nur deine Anwendung betrifft, setze und lese es im Code oder über saubere App-Konfiguration. Wenn es JBoss selbst steuern soll, setze es als Start-Property oder in der Server-Konfiguration – nicht erst zur Laufzeit im Programm.**