Die Sicherheit kann über einen Web-Container (die Umgebung, in der eine Anwendung ausgeführt wird) oder von der Anwendung selbst verwaltet werden. Ein Web-Container gleicht einem JEE-Anwendungsserver wie beispielsweise IBM® WebSphere Application Server oder Apache Tomcat. Die durch Web-Container verwaltete Sicherheit wird auch als JEE- oder J2EE-Sicherheit bezeichnet. Sicherheit, die vom Entwickler der Anwendung geschrieben wird (anwendungsverwaltete Sicherheit), wird auch als angepasste Sicherheit bezeichnet. Beide Arten der Sicherheit bieten Vor- und Nachteile, die Sie vor der Implementierung verstehen sollten.
Sie können auswählen, ob Sie deklarative oder programmgestützte Sicherheit verwenden wollen. Bei der deklarativen Sicherheit werden Sicherheitsrichtlinien außerhalb der Anwendung in Implementierungsdeskriptoren oder Konfigurationsdateien definiert, sodass die Sicherheit in der Anwendung selbst nicht verankert ist. Bei der programmgestützten Sicherheit enthält der Anwendungscode explizite Sicherheitsaufrufe.
Die durch Web-Container verwaltete Sicherheit (JEE) ist deklarativ, weil Integritätsbedingungen für die Sicherheit in Implementierungsdeskriptoren oder Konfigurationsdateien definiert sind. Die JEE-Sicherheit kann auch programmgestützt sein, da sie einige sicherheitsrelevante APIs enthält, die in der Anwendung aufgerufen werden können. Anwendungsverwaltete (angepasste) Sicherheit ist programmgestützt, weil die Sicherheit vollständig innerhalb der Anwendung gehandhabt wird.