我试图了解JAAS主体是如何从web层传播到业务/EJB层的。
我已经读过,如果角色/领域是在security-context login& web.xml中配置的,那么servlet容器也将透明地将经过身份验证的主体传递给EJB。
两个问题
1.)首先&更重要的是,这是真的吗?不需要开发人员的任何干预!
2.)其次,任何知道它是如何在引擎盖下工作的信息。
发布于 2011-08-25 20:30:20
发布于 2011-08-25 20:34:39
有各种在EJB调用中传播的“上下文”信息,一旦您进入EJB层并开始执行EJB-EJB调用,那么事务就是一个例子。有些容器也允许您创建自己的上下文对象。
线程-本地存储可以在进程中使用,但通常只是假设容器是负责的,并且可以做正确的事情--实际的技术是特定于实现的。
发布于 2017-06-20 14:11:44
Principal从web层传播到EJB层是通过web.xml中的login-config配置的,这在很大程度上是您所推测的。
它的实现方式取决于实现。用户/组数据也与实现相关,并且被配置为应用服务器的一部分。
但是,其中一种方法是通过JASPIC提供程序的实现,这是获取 Principal的一种标准方法。使用它,您可以使用与WEB-INF/web.xml提供的标准表单登录、基本身份验证或证书身份验证不同的身份验证路径,但这要做的工作要多一点。
JASPIC身份验证路径允许更复杂的场景,例如基于标头的身份验证或双因素或OpenID。用户数据库“通常”不需要绑定到应用服务器中的数据库。我说“通常”是因为WebSphere应用服务器将身份验证绑定到服务器上配置的用户。
https://stackoverflow.com/questions/7196706
复制相似问题