1

我的服务代码如下...

@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" />

但是当我通过 gwt-rpc 调用 serviceImpl 时,由于用户尚未通过身份验证,runGwtSprMvcHibJpaDemo 是否应该打印出安全错误?相反,runGwtSprMvcHibJpaDemo 方法是通过输出执行的

 SecurityContextHolder.getContext()=org.springframework.security.context.SecurityContextImpl@ffffffff: Null authentication  SecurityContextHolder.getContext().getAuthentication()=null
4

2 回答 2

1

添加

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

到您的 xml 配置,看看是否可以修复它。

于 2009-05-29T18:10:15.687 回答
0

在你的 spring 上下文中定义 bean,例如:

bean id=" userDetailsS​​ervice " 类="packagename.MyUserService">。

请注意,bean 名称应该完全相同。Spring 在内部使用这个 bean 来启动这个服务。

MyUserService 是 UserDetailsS​​ervice 的实现。

于 2010-08-03T07:47:08.333 回答