2009-05-29 1 views
1

Код для моей службы следует ...Метод @Secured должен бросить ошибку, когда ни один пользователь не аутентифицирован

@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()); 
    } 

} 

мой applicationContext.xml

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

но когда я называю serviceImpl через gwt- rpc, не запускаютсяGwtSprMvcHibJpaDemo предполагается распечатать ошибку безопасности, поскольку пользователь еще не аутентифицирован? Скорее всего, метод runGwtSprMvcHibJpaDemo выполняется с выходом

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

ответ

1

Добавить

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

к вашему XML-конфигурации и посмотреть, поможет ли это.

0

Определить фасоль в вашем весеннем контексте, как:

боб ид = "UserDetailsService " класс =" packagename.MyUserService">.

Обратите внимание: bean name должен быть полностью идентичным. Spring использует этот компонент внутренне, чтобы запустить эту услугу.

MyUserService - это реализация UserDetailsService.