Ich habe eine Anmerkung @SecurityDomain("cjm")
auf einer Klasse. Abhängig von der Umgebung, in der ich die Anwendung implementiere, muss ich verschiedene Sicherheitsdomänen konfigurieren. Also meine Idee war, Filterung zu verwenden: @SecurityDomain("${project.name}")
.Wie Java Annotation-Wert durch Maven-Eigenschaft zu ersetzen?
Mit den Beispielen, die ich auf SO gefunden habe, funktioniert nichts. Ich kann die Eigenschaft einfach nicht ersetzen
Es scheint komisch, ich habe keine schöne Lösung dafür gefunden. Wahrscheinlich suche ich mit der falschen Terminologie. Oder vielleicht, komischerweise genug, ist es (immer noch) nicht möglich.
Das Maven Vorlage-Plugin ist nicht ausreichend, es enthält keinen Filter, also habe ich viele doppelte Klassenkompilierungsfehler.
Bei dem Projekt handelt es sich um ein Java EE-Projekt, das auf Red Hat EAP 7 unter Verwendung des Sicherheitsschlüssels keycloak saml ausgeführt wird. Die @SecurityDomain muss den Sicherheitskontext aus dem Webkontext in den ejb-Kontext propagieren. Dies ist notwendig, wenn @RolesAllowed verwendet wird. Ich habe eine Verbesserungsanforderung an das keycloak-Team angemeldet, um den Sicherheitskontext automatisch weiterzugeben, wie in einem Standardszenario.
Haben Sie in Betracht gezogen, Spring-Konfiguration? Hier ist die Dokumentation: [Spring Externalized Configuration Dokumentation] (https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html) –
Sie scheinen zu reden über "filtern" Quellcode, der als seltsame Idee klingt. Macht es Ihnen nichts aus, diese Sicherheitsdomäne in die Eigenschaftendatei zu stellen? Allerdings gibt es ein Plugin https://stackoverflow.com/questions/4106171/filtering-source-code-in-maven –
Wie wäre es mit einer Eigenschaft mit @Value ($ {securityDomain}) private String securityDomain und injizieren Sie diesen Wert in @SecurityDomain (Sicherheitsdomäne) –