gpt4 book ai didi

Jetty - Basic Auth 在配置 Gerrit 时发送 403 而不是 401

转载 作者:行者123 更新时间:2023-12-04 18:22:13 25 4
gpt4 key购买 nike

我有一个 war 文件(特别是 gerrit.war ),它期望容器(特别是 jetty )到 handle basic HTTP authentication and pass that information down to the webapp .所以我无权访问代码或 web.xml 文件。

我正在关注 these instructions使用现有的 jetty 配置将 gerrit 包装在一个领域中,但是当我访问基本 URL (/login/) 时,我收到 403(禁止访问)错误。我希望得到一个 401,它会提示我的浏览器询问凭据(不是吗?)

我可以发布我的文件,但我没有对上面的示例进行任何更改。但是,如果有帮助,请告诉我..

最佳答案

发生这种情况的方式可能有很多种。在我的例子中,它发生是因为我的约束没有角色集。此代码生成 403:

private void secureServlet(ServletContextHandler handler) {
ConstraintSecurityHandler security = new ConstraintSecurityHandler();
security.setRealmName(this.realm);
security.setAuthenticator(new BasicAuthenticator());
security.setLoginService(new WebLoginService(this.engine));

Constraint constraint = new Constraint();
constraint.setName(Constraint.__BASIC_AUTH);
//constraint.setRoles(new String[]{"user"});
constraint.setAuthenticate(true);

ConstraintMapping mapping = new ConstraintMapping();
mapping.setConstraint(constraint);
mapping.setPathSpec("/*");

security.addConstraintMapping(mapping);
handler.setSecurityHandler(security);
}

在角色行中发表评论将提示 jetty 用 401:s 代替回答。

关于Jetty - Basic Auth 在配置 Gerrit 时发送 403 而不是 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com