java - 使用 Jersey 2 实现 Rest api 的基本身份验证

标签 java security rest tomcat7 jersey-2.0

我使用Jersey 2公开了一些休息API (Tomcat服务器)并成功实现Basic authentication (只需要身份验证,不需要授权)使用 ContainerRequestFilter过滤如下

public class AuthFilter implements ContainerRequestFilter{

    @Context
    HttpServletRequest request;

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

当我告诉我的领导同样的事情时,他说不要使用过滤器,因为每次你的其余 api 被点击时,这个过滤器都会被调用。因此,在容器级别实现基本的身份验证安全性。我正在使用 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 ,都不会减轻您进行检查所需的开销(这可能可以忽略不计,但我从未分析过代码的此区域以引用数字)。

关于java - 使用 Jersey 2 实现 Rest api 的基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28599260/

相关文章:

java - 在这个例子中如何使用toString?

java - 关于应进行多少次 API 调用的最佳实践是什么?

rest - 如何为ServiceStack中的错误更改ContentType?

java - ResourceController 上的 NumberFormatException 无法从字符串转换为整数

Java - 无法从网站获取 HTML 纯文本

java - 如何处理在 android studio webview 中以 .mht 格式保存的音频链接的点击?

java - 在属性文件中查找重复键和值的工具

security - 加密第 3 方凭据

security - javacard 的最终安全步骤

php - 如何在PHP中密码保护pdf