# Spring Security - Setting the SecurityContextHolder Contents Directly



## ARadauer (15. Apr 2010)

Hi ich beschäftige mich das erste mal mit Spring Security.

Ich habe hier eine Swing Anwendung die mit einem Server über ein propriätäres Protokoll kommuniziert. Ich schreibe nun einen Web Client für den Server mit Tapestry und Spring.

Der Loginprozess ist mehrstuffig und nicht sehr standard, da vorher noch einiges mit dem kommunikations Protokoll gemacht wird... damit Spring Security funktioniert wird im Swing Client nach dem erfolgreichen login einfach der Principal in den SecurityContextHolder gesetzt...


```
SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_GLOBAL);
        SecurityContextHolder.setContext(new ClientSecurityContext(principal));
```

schaut ja schon sehr gut aus... wenn man eine Swing Anwendung ist... wie mach ich das jetzt für meine Webanwendung?

Chapter5.Technical Overview
5.3.4. Setting the SecurityContextHolder Contents Directly



> In such situations it's quite easy to get Spring Security to work, and still provide authorization capabilities. All you need to do is write a filter (or equivalent) that reads the third-party user information from a location, build a Spring Security-specific Authentication object, and put it onto the SecurityContextHolder.


 Ja genau das will ich....



> It's quite easy to do this, and


... ;( ???:L nein... ich hab keinen Plan wie.. hab noch nie einen Servlet Filter geschrieben... also ich habe eine Session Scoped Spring Bean in der ich meinen Prinzipal habe... ich müsste nune einen Servlet Filter schreiben der mir den Prinzipal da raus hohlt und in den SecurityContext von Spring setzt... hab ich das richtig verstanden... aber wie?
Mann jetzt wärs geil wenn mir jemand ein Beispiel posten könnte....


----------



## ARadauer (15. Apr 2010)

Wenn man zwei Frameworks benutzt die beide auf Filter beruhen, wie Tapestry und Spring Security, und zb Spring Security macht gar nix.... sollte man überprüfen ob die Reihenfolge im web.xml richtig ist... ach... das hätte mir jetzt viel zeit gespart...


----------

