0

当访问令牌在标头中无效时,我想自定义 401/403 状态代码。我创建了一个异常映射器,如下所示:


import io.quarkus.security.AuthenticationFailedException;
import org.jose4j.json.internal.json_simple.JSONObject;

import javax.annotation.Priority;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider//register as JAXRS provider
@Priority(1)
public class UnAuthorizedExceptionMapper implements ExceptionMapper<AuthenticationFailedException> {
  @Override
  public Response toResponse(AuthenticationFailedException exception) {
   System.out.println("I m here:"+exception);
    JSONObject ob=new JSONObject();
    ob.put("errorCode",401);
    ob.put("msg","Invalid access token");
    return Response.status(Response.Status.UNAUTHORIZED)
            .entity(ob.toJSONString())

      .build();
  }


}

但是当我执行我的代码时,上面的异常映射器没有执行,而是在控制台中出现以下日志:

io.qua.oid.run.OidcProvider: (vert.x-eventloop-thread-1) 令牌验证失败:JWT 不再有效 - 声明值。

如何在 quarkus oidc 中自定义 401/403 状态码 msg。

4

0 回答 0