Jetty认证架构

bvd*_*vdb 1 java jetty

Jetty身份验证体系结构使用以下4个接口:

org.eclipse.jetty.server.UserIdentity
org.eclipse.jetty.security.LoginService
org.eclipse.jetty.security.IdentityService
java.security.Principal
Run Code Online (Sandbox Code Playgroud)

有人可以解释这4个接口如何在认证流程中互相交互.

浏览代码似乎不是很有帮助,因为有很多极端情况.我对主要流程感兴趣.

Joa*_*elt 8

这个问题很难回答,因为它非常开放/模糊.

我先试试这个简单的答案.

首先,基础知识,JVM提供的内容:

现在Jetty的具体内容:

  • org.eclipse.jetty.server.UserIdentity - 这表示用户的标识.又称为PrincipalSubject用户(如果principal为null,则用户未经过身份验证).这还包括一些帮助isUserInRole(String)样式逻辑的方法.
  • org.eclipse.jetty.security.IdentityService- 这将UserIdentity与所属的范围/线程相关联.(这是一个先进的概念,一些安全实现需要挂钩以正确处理安全性.Detty只提供默认行为,仅仅创建并执行此类关联UserIdentity.因为它不需要Jetty附带的安全实现).
  • org.eclipse.jetty.security.LoginService- 这是用于UserIdentity从a login()logout()样式事件创建/验证/销毁运行时对象的安全性实现的API .

最后,它如何联系在一起: