使用 Jersey 2 为 rest api 实施基本身份验证

Implement basic Authentication for rest api using Jersey 2

我已经使用 Jersey 2(Tomcat 服务器)公开了一些其他 api 并使用 [=15= 成功实现了 Basic authentication(只需要身份验证的东西而不是授权) ] 筛选如下

public class AuthFilter implements ContainerRequestFilter{

    @Context
    HttpServletRequest request;

    @Override
    public void filter(ContainerRequestContext context)  {
     ............................
     //getting username/password authorization header and validating

当我告诉我的主管时,他说不要使用过滤器,因为每次你的其余 api 被命中时,这个过滤器将得到 invoked.Therefore,在容器中实现基本的身份验证安全level.I 正在使用 Tomcat 服务器。 在web.xml中,这是定义

<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

他指的是上面的吗? 任何人都可以指导我如何实施领导所说的方式吗?

documentation gives you examples 关于如何通过 web.xml 配置它。您需要使用属于某个领域的 login-config 来配置它。然后,Web 容器会根据 URL 模式来保护资源。

  • 请注意,数据是通过 HTTP header 以纯文本(编码形式)发送的,因此您需要想办法确保不被窥探(如 HTTPS)。
  • 无论您是在过滤器上还是在容器上检查这个 header 都不会减轻您进行检查所需的开销(这可能可以忽略不计,但我从未分析过代码的这个区域引用数字)。