2.2. 架构
在本例中,应用程序使用两个 Jakarta REST 资源构建,即 FrontendResource 和 ProtectedResource。在这里,Frontend Resource 使用两种方法之一将访问令牌传播到 ProtectedResource :
- 它可以通过在传播令牌前使用 OIDC 令牌传播重新主动过滤器来获取令牌。
- 它可以使用 OIDC 令牌传播 Reactive 过滤器传播传入的访问令牌。
FrontendResource 有四个端点:
-
/frontend/user-name-with-oidc-client-token -
/frontend/admin-name-with-oidc-client-token -
/frontend/user-name-with-propagated-token -
/frontend/admin-name-with-propagated-token
FrontendResource 使用带有 OIDC 令牌传播 Reactive 过滤器的 REST 客户端来获取,并在 /frontend/user-name-with-oidc-client-token 或 /frontend/admin-name-with-oidc-client-token 被调用时将访问令牌传播到 ProtectedResource。另外,FrontendResource 使用带有 OpenID Connect Token Propagation Reactive Filter 的 REST 客户端,在 /frontend/user-name-with-propagated-token 或 /frontend/admin-name-with-propagated-token 被调用时,将当前的传入访问令牌传播到 ProtectedResource。
ProtectedResource 有两个端点:
-
/protected/user-name -
/protected/admin-name
两个端点返回从传入访问令牌中提取的用户名,该令牌从 FrontendResource 传播到 ProtectedResource。这些端点之间的唯一区别在于,只有在当前访问令牌具有用户角色时才允许调用 /protected/ ,只有在当前访问令牌具有 user -nameadmin 角色时才允许调用 /protected/admin-name。