Spring-Security und Tomcat Policy-Files

pasternak

Grünschnabel
Hallo,
ich benutze Spring 2.5 mit Spring-Security 2.0.4. Leider bin ich erst jetzt, wo die Applikation fertig ist, auf die Einstellungen zum Tomcat-Security-Manager gestoßen.

Wenn ich diesen aktiviere geht zunächst mal fast gar nichts. Anschliessend bin ich einen ähnlichen Weg gegangen wie auf folgender Seite beschrieben: http://mikeski.net/site/node/18
Auf jede java.security.AccessControlException habe ich in meiner "50myApplikation.policy"-Datei mit einem 'Grant' reagiert . Bis zum nächsten Fehler und so weiter, bis ich letztlich auch auf den Fehler:
Code:
exception
 
javax.servlet.ServletException: Could not initialize class org.springframework.security.context.SecurityContextHolder
	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:294)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:218)
 
root cause
 
java.lang.NoClassDefFoundError: Could not initialize class org.springframework.security.context.SecurityContextHolder
	org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:239)
	org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
	org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
	org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
	org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
	org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
	java.security.AccessController.doPrivileged(Native Method)
	javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
	org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
	org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:218)
gestoßen bin.

Der Schreiber des von mir zitierten Beitrages hat nun die Schlussfolgerung gezogen und der Webapplikation alle Rechte gegeben :
Code:
grant codeBase "file:${catalina.home}/webapps/myapp/-" {
  permission java.security.AllPermission;
};

Das halte ich aber für den falschen Weg. Leider habe ich nach 8 Stunden erfolgloser Suche im Netz keinerlei Hinweise gefunden, wie man Spring-Security und Tomcat-Security verheiratet.:(
Ganz offensichtlich fehlt eine Permission - sonst würde es mit "java.security.AllPermission" nicht funktionieren.
Es kommt aber keine java.security.AccessControlException mehr, woraus ich schlussfolgere, dass sie irgendwo durch eine andere überdeckt wird.

Andererseits habe ich im Netz noch folgenden Beitrag gefunden: http://www.openbenno.org/installation/
Hier behauptet "openbenno", dass man die Tomcat-Security ganz abschalten kann, wenn man SpringSecurity benutzt?
Nicht wirklich - oder :confused:
Wie definiere ich mit SpringSecurity Socketrechte oder FileAccess - eben das was in den policy-Dateien definiert wird?

Letztlich wundert mich, dass man nirgendwo im Netz (zumindest ich nicht) ein Beispiel für ein policy-File einer Spring-Security-gesicherten Webapplikation findet. Die müssten doch in Ihrem Frameworkspezifischem Teil alle relativ gleich sein? hat so was noch niemand gebraucht?

Ja - wer hat's schon gemacht oder hat einen wegweiser für mich?
beste Grüße - pasternak
 

Neue Beiträge

Zurück