如何在JSF框架中实现JAX-RS RESTful服务(具有用户角色安全性)

时间:2016-05-17 19:13:43

标签: rest servlets jsf-2 jersey jax-rs

我的问题与this question

非常相似

我正在尝试将JAX-RS框架与Jersey和JSF一起使用。 我知道我可以在同一个应用程序上同时运行它们,但映射到不同的位置(我现在有)

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
      <servlet-name>Rest Web Application</servlet-name>
      <url-pattern>/api/*</url-pattern>
  </servlet-mapping>

我想要做的是类似于this,其中用户可以访问REST API,但只返回允许他们根据角色查看的数据。例如,如果他们是老师,他们可以前往foo.com/api/students,只会得到一个json回复,其中包含在课堂上的学生,而不是学校里的所有学生。

我的问题是用户使用foo.com/login.xhtml下的/*.xhtml进行登录,因此他们的角色由JSF会话管理。我认为这意味着/api/students处的REST API无法知道用户登录的对象,尝试访问的用户,以及应该显示的结果。它甚至无法重定向未登录到登录页面的用户,如果他们只是将网址foo.com/api/students放入他们的网络浏览器,它只能显示所有学生。

我希望我错误地想到这一点,并且有一种方法可以知道谁登录,保护我的/api/students REST API来自未登录的人,甚至可以返回正确的数据关于他们的用户角色,如果他们已登录。

请帮助我理解我想做的事情是否可行。谢谢。

0 个答案:

没有答案