gpt4 book ai didi

java - 访问 dropwizard oauth Web 服务时出现错误 "Credentials are required"

转载 作者:行者123 更新时间:2023-12-01 11:23:57 25 4
gpt4 key购买 nike

我正在做一个 dropwizard maven 项目来进行自定义身份验证。我按照文档https://github.com/remmelt/dropwizard-oauth2-provider/blob/master/src/main/java/com/remmelt/examples/auth/SimpleAuthenticator.java 。但我收到“访问此资源需要凭据”。当我运行项目并从浏览器访问 URL 时出现此消息。任何帮助将不胜感激。我的代码是这样的..

public class ExampleAuthenticator implements Authenticator<String, User>
{

@Override
public Optional<User> authenticate(String arg0)throws AuthenticationException {
// TODO Auto-generated method stub
User u = new User(arg0);
System.out.println("\n\n\nString arg0"+arg0);
return Optional.of(new User(u.getName()));
}
}

以及Resource类中的代码

@GET
public String Token(@Auth User user)
{
System.out.println("In UserResource Class in Token Method");
return "Hello...";

}

在应用程序类中初始化 validator

environment.jersey().register(AuthFactory.binder(new OAuthFactory<User>(new ExampleAuthenticator(),"SUPER SECRET STUFF",User.class)));

最佳答案

OAuth 不是使用简单浏览器就能完成的事情。您所实现的内容需要设置以下 header :

Authorization: Bearer {your username}

在您提供此信息之前,您将获得需要 401 凭据

浏览器可以理解基本身份验证并向您显示一个简单的用户名-密码对话框,但这对于OAuth来说是不可能的,因为它是一个高度灵活的系统,每个身份验证都有不同的格式应用。这就是您使用 dropwizard 提供 Web (REST) 服务的原因,并且客户端(例如,如果您想使用浏览器,则为带有 javascript 的应用程序)查询该服务,同时维护 OAuth token .

我建议阅读更多有关 OAuth 的内容。同时,您可以使用简单的 REST 应用程序(例如 Postman)添加我上面提到的 header 来测试此应用程序。 .

关于java - 访问 dropwizard oauth Web 服务时出现错误 "Credentials are required",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30973446/

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