首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EJB3 & JAAS /主体如何从servlet容器传播到EJB3?

EJB3 & JAAS /主体如何从servlet容器传播到EJB3?
EN

Stack Overflow用户
提问于 2011-08-25 20:23:06
回答 3查看 4.2K关注 0票数 3

我试图了解JAAS主体是如何从web层传播到业务/EJB层的。

我已经读过,如果角色/领域是在security-context login& web.xml中配置的,那么servlet容器也将透明地将经过身份验证的主体传递给EJB。

两个问题

1.)首先&更重要的是,这是真的吗?不需要开发人员的任何干预!

2.)其次,任何知道它是如何在引擎盖下工作的信息。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-25 20:30:20

  1. 是的是真的。这通常是ejb的意义所在,要把“硬”的东西从开发人员手中拿出来(例如安全性、事务、健壮性、多线程等等)。
  2. 它依赖于实现。我知道,在jboss (至少4.x和之前)中,远程方法调用使用的是一个自定义序列化协议,该协议包含可以与请求一起发送的任意信息地图。这是auth信息以及支持集群的其他东西。对于本地方法调用,我相信它们使用的是ThreadLocals之类的东西。
票数 5
EN

Stack Overflow用户

发布于 2011-08-25 20:34:39

有各种在EJB调用中传播的“上下文”信息,一旦您进入EJB层并开始执行EJB-EJB调用,那么事务就是一个例子。有些容器也允许您创建自己的上下文对象。

线程-本地存储可以在进程中使用,但通常只是假设容器是负责的,并且可以做正确的事情--实际的技术是特定于实现的。

票数 1
EN

Stack Overflow用户

发布于 2017-06-20 14:11:44

Principal从web层传播到EJB层是通过web.xml中的login-config配置的,这在很大程度上是您所推测的。

它的实现方式取决于实现。用户/组数据也与实现相关,并且被配置为应用服务器的一部分。

但是,其中一种方法是通过JASPIC提供程序的实现,这是获取 Principal的一种标准方法。使用它,您可以使用与WEB-INF/web.xml提供的标准表单登录、基本身份验证或证书身份验证不同的身份验证路径,但这要做的工作要多一点。

JASPIC身份验证路径允许更复杂的场景,例如基于标头的身份验证或双因素或OpenID。用户数据库“通常”不需要绑定到应用服务器中的数据库。我说“通常”是因为WebSphere应用服务器将身份验证绑定到服务器上配置的用户。

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

https://stackoverflow.com/questions/7196706

复制
相关文章

相似问题

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