Spring REST服务,注册用户,身份验证

时间:2017-04-18 11:43:01

标签: java spring spring-security

我们的项目包括Java后端(spring web应用程序)以及iOS和Android客户端应用程序。现在我们需要为Java后端添加客户端应用程序的身份验证。我们的想法是首次使用外部Web服务注册用户。在此步骤中,用户提供完整凭证(登录和"大"密码)并选择一些PIN以进一步授权。在主要步骤成功完成之后,用户应该能够使用他的登录和PIN(他之前自己选择)进行身份验证。那些登录名和密码应存储在我们的数据库中。我们也应该能够摧毁那个"会议"必要时和PIN。我们希望网络应用程序拥有多达10 000名注册用户,最多可同时在线使用1000名用户。

我们也不打算使用任何单独的身份验证服务器,我们计划将安全性嵌入到Web应用程序(后端)中。

我一直在研究两种不同的方法。首先是通常的Spring @EnableWebSecurity方法。这似乎很简单,但有些人说它会创建"会话",这对服务器不利。会话将消耗大量内存,对性能的总体影响将是不好的。这是真的吗?

另一种方法是使用Spring Oauth2实现。我没有时间正确地研究它,这对我来说似乎有点过分。是否值得研究我们的需求? (我们的时间已经不多了。)

我还需要一些适当的DB sctructure来满足安全需求。

所以问题是,对我们的情况最好的方法是什么?是否有任何开源项目,解决类似的问题?我将不胜感激任何帮助。

谢谢。

2 个答案:

答案 0 :(得分:1)

无论您使用哪种技术进行身份验证,都需要会话来维护经过身份验证的用户的状态。您可以单独使用Spring安全性,也可以使用Oauth2。

为了简单起见,我建议您使用Spring Security with Token功能。

但是你可以找到一个关于Spring Security和Oauth的好博客。

Securing REST Services with Spring Security and OAuth2

如需更多说明,您还可以访问here

答案 1 :(得分:1)

如果要在会话中存储大量数据,会话应该只占用大量内存。只要你不这样做,就不会有任何问题。您需要根据可接受的安全性和用户体验级别做出自己的身份验证决策,没有一个“正确”的答案。这里已经讨论过Spring安全性和会话How can I use Spring Security without sessions?