我的服务代码如下......
@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
答案 0 :(得分:1)
添加
<security:http auto-config="true">
<security:intercept-url pattern="/**" access="ROLE_ADMIN" />
</security:http>
到您的xml配置,看看是否修复了它。
答案 1 :(得分:0)
在弹簧上下文中定义bean,如:
bean id =“ userDetailsService ” 类= “packagename.MyUserService” &GT;
请注意,bean名称应该是完全相同的。 Spring在内部使用此bean来启动此服务。
MyUserService是UserDetailsService的实现。