我使用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/