如何保护JSF应用程序客户端和服务器端REST API模块

问题描述:

我试图找到一个解决方案来实现认证和授权到我的应用程序,它通过REST API和目前公开的服务有一个Web应用程序客户端:如何保护JSF应用程序客户端和服务器端REST API模块


| Web应用程序客户端| - > JSF/Primefaces

| REST API | - > JAX-RS/Jersey

|业务逻辑和持久性API | - > EJB/JPA

|数据库| - > MySQL的


的REST API提供了几个服务,它们之间也登录服务。我想通过在每个客户端请求上使用我的身份验证机制(也在上面提到的登录服务后面使用)来阅读和检查用户的凭据来保留REST无状态约束。

在Web应用程序方面,我可以使用在REST登录调用之后作为响应获得的用户和相关角色信息来检查受保护的资源访问(阻止URI访问,启用/禁用GUI按钮),并将这些信息保存在HTTP会话。

现在,当检查并验证某个用户的操作在Web应用程序级别被授予时,将再次对REST API级别执行第二次检查。

你觉得这种做法是正确的吗? 我试图了解是否有可能避免在两个图层上重复检查授权。

此外,我公司正在调查一个或两个我的层引入春季安全的,我可以利用从呢?

由于提前,有一个美好的一天!

我认为可以采取两种方法来你的应用程序了(AUTH方面)安全:

  1. 升级httphttps,每当客户端发送一个请求,你可以检查证书。
  2. 使用基本身份验证或摘要身份验证来验证登录过程(如果您想足够安全,请更好地摘要)并将唯一令牌返回给客户端。每次请求到达时验证令牌。

您不必检查每个请求的用户凭据,只需检查令牌。

+0

HTTPS和摘要认证肯定会有很大的改进,谢谢。不过,我编辑了我的问题,试图更好地解释我的问题:“令牌”解决方案将有利于身份验证,但授权又如何? –

+0

我错过了它是一个web应用程序,您可以使用spring安全性来管理服务器端的身份验证和授权。 –