繁体   English   中英

如何在Google App Engine上使用Spring Framework创建表单登录名

[英]How to create a form login with Spring Framework on Google App Engine

我是Spring和GAE的新手,我认为这很简单,因此请不要忽略简单的答案。

在春季,我了解到我需要创建UserDetailsService的实现,该实现将在身份验证的安全框架中填充UserDetails

完成此操作后,我在SpringUserDetailsService Bean上收到一个NotSerializableException ,如果我对其进行序列化(如图所示),则最终在DAO上得到了NotSerializableException GAE将会话存储在数据存储中,据我阅读Spring Web Security框架所了解的使用该会话。

如果我在服务中添加@Scope("session) ,则会收到以下我并不真正理解的异常。此外,为每个会话单独创建此类的副本似乎也没有意义,它们应该参考单例。

BeanCreationException:创建名称为'testService'的bean时出错:作用域'session'对于当前线程无效; 如果您打算从单例中引用它,请考虑为此bean定义作用域代理。 嵌套异常为java.lang.IllegalStateException:未找到线程绑定的请求:您是在实际Web请求之外引用请求属性,还是在原始接收线程之外处理请求? 如果您实际上是在Web请求中操作并且仍然收到此消息,则您的代码可能在DispatcherServlet / DispatcherPortlet之外运行:在这种情况下,请使用RequestContextListener或RequestContextFilter公开当前请求。

@Service("springUserDetailsService")
public class SpringUserDetailsService implements UserDetailsService, Serializable {
 @Resource(name="userDao")
 private IUserDao userDao;

    @Override
    public UserDetails loadUserByUsername(String username){...}
}

对于诸如表单登录之类的简单任务,这很麻烦,有人可以帮忙解开我的大脑吗?

查看这篇文章。 它应该使您开始:

http://blog.springsource.com/2010/08/02/spring-security-in-google-app-engine/

格兰特

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM