【问题标题】:Java Rest Easy WebContext InjectionJava Rest Easy WebContext 注入
【发布时间】:2016-06-15 20:01:35
【问题描述】:

我正在使用 RestEasy 设置一个 java 应用程序,并创建了一个身份验证过滤器来获取 jwt 令牌并从中提取用户信息(例如用户 DTO)。我想注入一个bean(RequestScope?)来保存用户信息,但我不知道该怎么做:我尝试如下,但对象为null:

@Inject WebContextDto webContext;

【问题讨论】:

    标签: java resteasy jwt inject


    【解决方案1】:

    不需要注入,过滤请求即可。使用一个ContainerRequestFilter,从header中获取token即可。

    【讨论】:

    • 我可以在 ContainerRequestFilter 中获取我的令牌,但我不知道如何将令牌数据传递给目标过滤器
    • 在任何可以访问请求范围的方法中,** 目标过滤器** 是什么意思,您可以使用 @Context HttpHeaders 标头 - 获取令牌
    【解决方案2】:

    您需要触发 Weld 才能使其工作。我通常这样做的方式是将 beans.xml 文件放在 src/main/webapp/WEB-INF 中(我使用 maven 你看)。 beans.xml 的内容可能像这样微不足道:

    <beans 
    xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" 
    version="1.1" 
    bean-discovery-mode="all">
    

    【讨论】:

    • 非常感谢您的回答。如果我没记错的话,在 java ee 7/8 中没有必要声明 bean.xml
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多