6.3. 对于 JAX-RS 资源,不再启用上下文和依赖项注入
为了提供更好的运行时并利用底层堆栈,删除了使用 javax.ws.rs.core.Context
注解的上下文数据的注入点。性能的预期改进不会影响在请求生命周期中多次创建代理实例,并大大减少运行时反映代码的数量。
如果需要访问当前的请求和响应对象,您现在可以直接从 KeycloakSession
获取其实例:
@Context org.jboss.resteasy.spi.HttpRequest request; @Context org.jboss.resteasy.spi.HttpResponse response;
@Context
org.jboss.resteasy.spi.HttpRequest request;
@Context
org.jboss.resteasy.spi.HttpResponse response;
被替换:
KeycloakSession session = // obtain the session, which is usually available when creating a custom provider from a factory KeycloakContext context = session.getContext(); HttpRequest request = context.getHttpRequest(); HttpResponse response = context.getHttpResponse();
KeycloakSession session = // obtain the session, which is usually available when creating a custom provider from a factory
KeycloakContext context = session.getContext();
HttpRequest request = context.getHttpRequest();
HttpResponse response = context.getHttpResponse();
额外的上下文数据可以通过 KeycloakContext
实例从运行时获取:
KeycloakSession session = // obtain the session KeycloakContext context = session.getContext(); MyContextualObject myContextualObject = context.getContextObject(MyContextualObject.class);
KeycloakSession session = // obtain the session
KeycloakContext context = session.getContext();
MyContextualObject myContextualObject = context.getContextObject(MyContextualObject.class);