首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Drupal保护Java服务?

如何使用Drupal保护Java服务?
EN

Stack Overflow用户
提问于 2012-03-29 22:36:20
回答 1查看 705关注 0票数 1

我正在创建一个使用Drupal 7内容管理系统的web应用程序。网页大量使用JQuery和AJAX。

AJAX调用击中REST服务,这些服务实际上是使用JAVA实现的。Apache正在运行Drupal 7,并被配置为将所有对REST urls的调用传递给Java服务器(Jboss AS7)。一切都结束了SSL。

我需要授权和验证对REST服务的调用,并从Java应用程序访问当前登录到Drupal的人的用户名或ID。问题是..。怎么..。

由于AJAX调用是对同一个Apache服务器(而不是对单独的服务器等)进行的,所以一切都发生在同一个http会话中,所以我希望这会非常容易。

我想过的事情:

  • 配置一个java安全拦截器,该拦截器调用自定义(仅在本地访问) drupal服务,该服务以某种方式读取会话id并返回登录用户名。
  • 创建一个“哑”的drupal REST服务,作为所有REST调用的网关,该网关授权/身份验证,然后在传递到Java后端服务之前注入用户名。
  • https://lists.wisc.edu/read/messages?id=7777296#7777296的这篇文章让我想知道,我是否可以调用一个Drupal服务(就在每个服务会话开始时),该服务接受一个sessionID并返回当前用户和他的角色。我可以在我的Java服务中配置它,以便它每隔x秒钟或y次重新执行这个调用,以检查角色更改或注销。

其他人是怎么做到的?这一定是个常见的问题,不是吗?如果不是,您应该做什么来通过AJAX安全地访问经过身份验证的服务?除了Drupal之外,我宁愿不介绍第二个用户控制过程,除非这是不可避免的。干货:)

谢谢-这让我很困惑!

EN

回答 1

Stack Overflow用户

发布于 2012-04-03 18:52:06

看看你在做什么,并尽量保持简单,我会选择第一个选项的一个变体。这基本上就是当前的node.js模块所做的,尽管它使用的是唯一的授权令牌。工作流程如下所示:

  1. 当登录用户加载页面时,生成唯一的令牌并将其存储在Drupal数据库中并发送到浏览器。
  2. 当浏览器连接到node.js服务器时,它会发送auth令牌和请求。
  3. node.js服务器在第一次收到带有令牌的请求时,将连接到Drupal站点上的web服务,并验证令牌是否有效,并发回有关用户的任何信息,以及它们的角色/etc。
  4. 然后,node.js服务器为将来的请求在内部存储它,这样它就不必为每个请求平铺Drupal站点。
  5. 当用户注销Drupal时,Drupal直接请求node.js服务器删除该用户的令牌。

听起来基本上是把你的java应用程序换成了node.js,这应该是相当可行的,它的优点是,如果将来将它分成多个服务器,它就可以很好地扩展。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9934572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档