我是网络编程的新手,来自视频游戏开发背景(c ++),我真的开始感到信息过载.有这么多竞争的图书馆都选择了一些他们不喜欢的东西,并建立了一种全新的方式来做同样的事情!我相信这有充分的理由,我不想抱怨,所以我会解释我的问题.
为了简化我的旅程,我决定开始学习Google App Engine + GWT + Java.我喜欢它,因为它是一个开箱即用的分布式服务器架构,我选择Java是因为我的C++背景.
首先,我编写了一些类似Twitter的应用程序,因为它测试了Web开发的各个方面,即:REST,JSON解析/创建,AJAX通信和HTML生成.创建一个允许用户在浏览器页面中输入他们的名字和密码,将数据发送到我的应用程序,代表他们登录,抓住他们的朋友列表,然后发出的小网站并不需要太长时间.它以JSON的形式返回给客户端,在那里我解析并显示它.
非常简单的东西.
因此,下一步是我不喜欢将用户通过网络输入的密码作为纯文本发送(显然).这让我想到了我需要的所有管道:
根据我自己的数据库验证用户,而不是Google的.(登录/忘记密码/退出)
进入/退出(跟踪)会话(登录/注销).
将用户数据存储在我的Google应用数据库中.
所有非常标准的东西都是永远存在的.好吧,我开始四处寻找一个Java认证库,那里有如此庞大的单片库,有很多学习曲线,有些已经老了或者不再受欢迎了...我觉得我又像一个初学者程序员了!我只想要一个登录页面!:)
所以我开始阅读认证的管道如何工作,并且有大量的内容可供使用.显然,人们(不安全地)推出自己的认证是很常见的.我宁愿采取一种存在且坚实的解决方案.
所以问题就变成了,人们对此做了什么?Twitter支持HTTP和HTTPS,但默认为其REST API的HTTP,这是否意味着人们的密码在不受保护的情况下飞来飞去,准备被中间人攻击拦截?
我也看了OAuth,它看起来很棒,但它没有一个好的旧案例"我不想知道或关心OpenID是什么".非技术人员我已经展示了OpenID,就像"wha?我只想把我的用户名/密码放进去".
作为旁注,有没有人在Google App Engine上运行Spring.Security?
无论如何,我在咆哮.我只是想知道人们做了什么(不是在Python,Rails等,而是在古老的Java中).我想拥有像Digg这样的登录页面,甚至有一天可以选择OpenID :)
干杯,沙恩
我无法与Google App Engine一起使用Spring Security,但我可以说一些可能有用的内容.
首先,它的设置非常简单,并且它们有很好的教程可以帮助它完成.就个人而言,我使用宠物诊所教程作为第一次如何将弹簧安全性应用于我的项目的指南.我能够在一两个小时内完成设置,并在几个不同的页面上使用我的数据库进行基本安全保护.你的里程可能会有所不同,但最糟糕的情况是你有完整的教程,你可以戳戳并刺激它看看它是如何反应的.
其次,库是非常可配置的.如果你仔细阅读手册,你会很清楚你可以做的事情,而且我在为项目改变所需的区域时没有任何问题.我相信您应该能够将这些Spring Security和Google App Engine一起工作.总的来说,我对Spring源的远见和与其他库交互的能力感到满意.
最后,Spring Security支持OpenID,如果这是你决定要插入的内容.我还没有使用过这个部分,但是从教程中它看起来也非常直观.这里的好处是,如果事实证明你应该支持OpenID,那么你应该能够添加它.
祝你好运!