我正在创建一个使用Drupal 7内容管理系统的Web应用程序。网页大量使用JQuery和AJAX。如何使用Drupal保护Java REST服务?
AJAX调用命中REST服务,这实际上是使用JAVA实现的。 Apache运行Drupal 7,并且配置为将任何对REST URL的调用传递给Java EE服务器(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的文章让我想知道是否我可以逃脱机智h调用一个Drupal服务(仅在每个Java服务会话开始时),它接受一个Drupal会话ID并返回当前用户及其角色。我可以在我的Java服务中对其进行配置,以便每隔x秒或y调用一次该调用以检查角色更改或注销。
其他人如何做到这一点?这一定是一个常见的问题来解决是不是?如果不是的话,你会怎样做,而不是通过AJAX安全地访问已验证的服务?除了Drupal之外,我不想介绍第二个用户控制过程,除非它是不可避免的。 DRY :)
谢谢 - 这让我难住!
这很有道理。是否有可能使用存储在标题或cookie中的会话变量作为唯一标记,以消除对额外标记的需求? – user1180316 2012-04-04 09:33:51