Ich habe einen JAX-RS-Webservice, für den ich die Same-Origin-Richtlinie über die neuen CORS-HTTP-Header deaktivieren möchte. (Mir sind die Sicherheitsimplikationen vollständig bewusst.)
Ich möchte eine benutzerdefinierte Annotation haben, die es mir ermöglicht, HTTP-Antwortheader festzulegen. Zum Beispiel,
@ResponseHeaders({"Access-Control-Allow-Origin: *",
"Access-Control-Allow-Methods: GET"})
// Oder alternativ:
@AllowOrigins({"*"})
public String resourceMethod() { ... }
Dieser Ansatz minimiert den Boilerplate-Code, aber ich bin mir nicht sicher, ob es eine subtile technische Einschränkung gibt; JAX-RS bietet viele Annotationen zur Verarbeitung des HTTP-Requests, aber nicht der Antwort, wobei @Produces
die einzige Ausnahme zu sein scheint.
Ich ziehe es auch vor, möglichst wenig Web.xml-Konfiguration zu verwenden. Ohne explizit einen ResponseBuilder verwenden zu müssen (es ist in Ordnung, wenn eine Annotation einen verwendet), gibt es einen sauberen Weg, benutzerdefinierte HTTP-Antwortheader festzulegen?
Zur Klarstellung: Ich suche nach Annotationen, die mit den verschiedenen Möglichkeiten zur Festlegung von HTTP-Antwortheadern integrieren, um den Boilerplate-Code zu minimieren.