欢迎光临
我们一直在努力

Java:Microprofile JWTweb.xml返回200’而不是401′

在Java中,使用microprofile JWT(JSON Web Token)进行身份验证和授权是一种常见的方法。通过在web.xml文件中设置适当的安全策略,您可以确保只有经过身份验证的用户才能访问受保护的资源。即使用户没有提供有效的JWT令牌,服务器也可能会返回200状态代码而不是401Unauthorized。

为了解决这个问题,您需要了解MicroProfile JWT的工作原理以及如何在web.xml中设置适当的安全策略。

让我们来看看Microprofile JWT的基本概念。Microprofile JWT是一个规范,它定义了如何在Java EE应用程序中使用JSON Web令牌进行身份验证和授权,并提供了一组注释和API,使开发人员能够轻松地实现JWT的生成、验证和解析。

MicroProfile JWT通常使用@LoginRequired`标注来标记需要验证的端点。当用户尝试访问这些端点时,如果没有提供有效的JWT令牌,服务器将返回401Unauthorized状态代码。即使用户没有提供有效的JWT令牌,服务器也可能会返回200状态代码而不是401未授权的状态代码。

要解决此问题,您需要在web.xml文件中检查安全设置。在此文件中,您可以使用“元素”定义安全约束,并使用“元素”配置登录页和其他相关设置。

``必须确保元素正确定义了需要验证的端点。您可以使用以下代码定义一个称为“secure”的安全约束:

Secure Secure Single

/*

在上面的代码中,我们定义了一个名为“Secure”的安全约束来匹配所有URL模式(`/*`),并添加了一个空的`元素,表示没有明确的身份验证约束。

接下来,您需要设置登录页面和其他相关设置。您可以使用``元素设置一个简单的登录页面。

什么是Basic

什么是MyRealm

/login.html

/error.html

上面的代码使用了基本方法BASIC,并指定了一个名为MyRealm "的领域。此外,还有表单登录页“/.html”和表单错误页“/error.html”。

如果你在web.xml文件中设置了适当的安全策略,为什么服务器会返回200状态码而不是401未授权?这可能意味着服务器没有正确地处理未经过身份验证的请求。要解决此问题,您需要确保服务器正确识别未验证的请求,并返回401Unauthorized状态代码。

在Java EE应用程序中,您可以使用过滤器来完成此操作。创建一个自定义过滤器来检查请求是否包含有效的JWT令牌,如果未提供有效的JWT令牌,过滤器将拦截请求并返回401Unauthorized状态代码。

`java

import javax. annotation. priority;

import javax. ws. rs. container. ContainerRequestContext;

import javax. ws. rs. container. ContainerRequestFilter;

import javax.ws.rs.ext.;

import javax. ws. rs. core. Response;

Java. io. IOException;

import java.util.Base64;

import java. util. Optional;

import javax.json.Json;

import javax.json.Json;

import javax. json. JsonReader;

import javax. servlet. http. HttpServletRequest;

import javax. ws. rs. WebApplicationException;

import javax. ws. rs. core. Respons. Status;

import org. eclips. microprofile. jwt. Claims;

import org. eclips. microprofile. jwt. JsonWebToken;

import. eclips. micro. j. tck. imsVer;

import org. eclips. microprofile. openapi. annotations. OpenAPIDefinition;

import org. eclips. microprofile. openapi. annotations. info. Info;

import org.eclipse.microprofile.openapi.annotations.responses. *;

import. ecse.microprofile.openapi.annotations.parers. *;

import org. eclipse. microprofile. openapi. annotations. *;

import org.eclipse.microprofile.openapi. *;

与import org合作。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

除特别注明外,本站所有文章均基于CC-BY-NC-SA 4.0原创,转载请注明出处。
文章名称:《Java:Microprofile JWTweb.xml返回200’而不是401′》
文章链接:https://www.xpn.cc/9213/fy.html
分享到: 更多 (0)

登录

忘记密码 ?