首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java客户机-服务器体系结构中的安全性

Java客户机-服务器体系结构中的安全性
EN

Stack Overflow用户
提问于 2011-10-25 10:04:58
回答 1查看 491关注 0票数 2

我试图为以下架构实现安全性:

  • Web层:使用GWT的Tomcat 7应用服务器。
  • 后端: JBoss 7.1应用服务器使用EJB和JPA来持久化数据。web层远程使用EJB。

我正在考虑使用JBoss安全性,这涉及:

  • 通过登录-config.xml在JBoss中创建安全域
  • 安全域使用DatabaseServerLoginModule从MySQL db检索用户名/密码和角色方面的数据。
  • 授权:通过使用@RolesAllowed注释我的EJB方法来实现基于EJB的安全性。

我以前在一个JBoss中实现了这一点,并在JBoss的Tomcat中配置了web.xml。然后jboss-web.xml将我的web应用程序绑定到我在JBoss中创建的安全域。

我现在关心的是,这一切是如何使用两个单独的服务器来工作的:一个Tomcat容器,它对后端JBoss进行远程调用。我的问题:

  • 如何使Tomcat知道在远程JBoss中定义的安全域(如果可能的话),以便它将查找DB中的凭据的任务委托给JBoss?
  • 如果我的GWT组件调用远程EJB,我如何将安全凭据从Tomcat传播到远程JBoss (主体、密码),而不必在每个调用中指定这些证书?
  • 这是否可行呢?在这种情况下,还有其他的选择可以让我的生活更轻松吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-07 13:32:44

  1. 没有标准的方法可以远程访问LoginModule。因此,如果您想将后端的loginmodule用作前端的JAAS logic模块,则必须公开后端的逻辑,例如REST或WS服务,并在Tomcat中创建一个定制的loginmodule远程调用它。
  2. 理论上,如果通过JNDI查找后端EJB并对其执行安全方法调用,则应该传播JAAS安全上下文。在实践中,每个AS都以不同的方式处理这个问题,我从未看到它在不同的AS之间工作。
  3. 还有一种选择,就是使用Security。请参阅包org.springframework.security.remoting.httpinvokerorg.springframework.security.remoting.rmi。但这要求您始终使用和Security。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7887645

复制
相关文章

相似问题

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