2009-05-29 4 views
1

Der Code für meinen Dienst folgt authentifiziert ...Methode @Secured soll Fehler werfen, wenn kein Benutzer

@Controller 
@GwtRpcEndPoint 
public class ServerServiceImpl implements ServerService { 

    @org.springframework.security.annotation.Secured("ROLE_ADMIN") 
    public String runGwtSprMvcHibJpaDemo(String s) { 


     System.out.println("SecurityContextHolder.getContext()="+SecurityContextHolder.getContext()); 
     System.out.println("SecurityContextHolder.getContext().getAuthentication()="+SecurityContextHolder.getContext().getAuthentication()); 
    } 

} 

mein applicationContext.xml

<security:global-method-security secured-annotations="enabled" jsr250-annotations="disabled" /> 

, aber wenn ich die serviceImpl durch nennen gwt- rpc, nicht runGwtSprMvcHibJpaDemo soll Sicherheitsfehler ausgeben, da Benutzer noch nicht authentifiziert sind? Vielmehr wird das Verfahren runGwtSprMvcHibJpaDemo mit Ausgang

ausgeführt
SecurityContextHolder.getContext()[email protected]ff: Null authentication SecurityContextHolder.getContext().getAuthentication()=null 

Antwort

1

<security:http auto-config="true"> 
     <security:intercept-url pattern="/**" access="ROLE_ADMIN" /> 
</security:http> 

zu Ihrer XML-Konfigurations hinzufügen und sehen, ob es das behebt.

0

definieren Bohne im Frühjahr Kontext wie:

bean id = "userDetailsService " class =" packagename.MyUserService">.

Bitte beachten Sie, dass der Name des Beans exakt gleich sein sollte. Spring verwendet diese Bean intern, um diesen Dienst zu starten.

MyUserService ist eine Implementierung von UserDetailsService.

Verwandte Themen