在 JBoss 中保护 REST API
Posted
技术标签:
【中文标题】在 JBoss 中保护 REST API【英文标题】:Securing REST API in JBoss 【发布时间】:2013-06-27 22:43:37 【问题描述】:我正在 JBoss-As 7 下开发一个 RESTeasy JSON API。
我有另一个单独的网络服务器。
我在服务器端使用 JAVA 进行开发,在客户端使用 Javacript、JQuery、AJAX强>。
所以,我有 2 个 distinct *war*s,假设它们可以通过以下方式访问:
https.//localhost:8443/services http.//localhost:8080/web现在我想保护这两个人; RESTeasy API 和 网络服务器。
让我谈谈我的结构:
我使用用户名-密码将用户保存在 DB 中。目前只有这些用户。 我有一个登录页面来验证我的用户(我不想要 http 基本身份验证弹出窗口和任何解决方法) REST API 的客户端是浏览器(不是网络服务器)。加载静态页面,然后通过 REST API 加载其他一些动态内容,使用 JQuery、AJAX 等从浏览器内部调用。 所有通信都可以通过SSL/TLS,没问题。 对于未来,应考虑可扩展性(Web 浏览器以外的客户端、通过社交网络登录进行身份验证的能力等)。我的场景如下:
客户端是浏览器。 客户想要访问网页web/aaa.html
,该网页仅限经过身份验证的用户使用。
客户端被重定向到登录页面:web/login.html
客户填写了FORM并发送至...,
a) 到 rest-api,或
b) 到网络服务器,
不确定(所以,这里有一个隐含的问题)。
但无论如何,a或b应该做的都是一样的:
检查用户名密码。假设它们已被检查并且用户已通过身份验证。
从现在开始,我应该同时得到这两样东西:
1-客户端有权浏览受限页面。
2- 客户端将获得 REST API 调用的授权。
所以,在登录页面进行身份验证后,我需要同时发生这两件事。
我已经阅读了很多关于 REST API 中的授权、令牌、密钥等的内容,是的,我还听说过 Spring Security、Apache Shiro、等等
是的,我不想自己实现一个新的安全框架,我会使用一个。我想某些框架可以为我生成/检查令牌等。
在 Spring Security 和 Apache Shiro 之前,我想了解 resteasy 万能键 JBoss 模块。
有以下来源:
https://github.com/resteasy/Resteasy/tree/3.0.1.Final/jaxrs/examples/oauth2-as7-example
http://docs.jboss.org/resteasy/docs/3.0-beta-2/userguide/html/oauth2.html
但是,在我看来,它们并不是很明确,而且我不确定它们是否是我需要的。
有没有人知道如何配置万能键(或一般的 JBoss App 层)并给我有用的例子来实现我所描述的?
或者,您能否给我一些其他建议/示例来实现我的目标,特别是注意我的问题是关于“如何实施”?我不知道从哪里开始。
提前致谢。
【问题讨论】:
您应该在 Sourceforge RestEasy 邮件列表上发布这个问题。 RestEasy 的作者比尔·伯克 (Bill Burke) 活跃在该名单上。短网址:goo.gl/QOsDwi 【参考方案1】:为了保护 REST 服务,我们可以使用以下框架
OAuth(开源 - RFC6749) Apigee【讨论】:
以上是关于在 JBoss 中保护 REST API的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring Security 保护 REST API
使用 Spring Boot 和 JWT 保护 REST Api