使用dropwizard框架实现了Resful应用程序。我使用dropwizard-auth-jwt对maven包进行身份验证:
为了为资源添加身份验证,我实现了sampleAuthenticator,它是使用主体类进行身份验证检查的已实现的身份验证器类。
public class UserAuthenticate implements Authenticator <JwtContext, MyUser> {
@Override
public Optional<MyUser> authenticate(JwtContext context) {
try {
final String subject = context.getJwtClaims().getSubject();
if ("authentication".equals(subject)) {
return Optional.of(new MyUser("admin", "pass"));
}
return Optional.empty();
}
catch (MalformedClaimException e) { return Optional.empty(); }
}
}
当MyUser实现主体时:
public class MyUser implements Principal {
private String pass;
private String name;
public MyUser(String name, String pass) {
this.pass = pass;
this.name = name;
}
public MyUser( String name){
this.name = name;
}
public MyUser(){}
public String getPass() {
return pass;
}
@Override
public String getName() {
return name;
}
@Override
public String toString() {
return "MyUser{" +
"pass='" + pass + '\'' +
", name='" + name + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
final MyUser myUser = (MyUser) o;
return Objects.equals(pass, myUser.pass) && Objects.equals(name, myUser.name);
}
@Override
public int hashCode() {
return Objects.hash(pass, name);
}
}
使用这种配置,我需要为crud操作添加资源。对于get和delete,没有probelm。但当我添加post或put时,需要为请求体添加新对象时,我出现了错误。
岗位:
@POST
@Path("/")
public Response create(@Auth MyUser admin, Body body) {
return Response
.status(Response.Status.OK)
.type(MediaType.APPLICATION_JSON)
.entity(true)
.build();
}
jersey
希望@path
批注位于类级别。在这里看到我的答案:在不编写包装类的情况下解析请求参数
我不知道您使用的是哪个版本的dropwizard,但我无法将@post和@path(“/something”)注释组合在一起,以便在注释方法时进行操作。我收到HTTP错误404。
我不知道POST和PUT方法的确切区别。有些人在网上说,当你们更新记录的时候,你们必须使用PUT方法而不是POST,我不知道这是真的吗?? 如果你的网站URL在POST方法1.www.example。com/user/{id}/update:-使用2.www.example。com/user/update:-使用后这是否正确??
唯一的GET方法一直在工作,但PUT、POST和DELETE总是出错。我尝试通过网络更新处理程序映射。也可以在IIS站点下进行配置。最初,我得到了错误的状态代码405作为方法不允许。当我将处理程序映射更改为 开始将415的错误设置为“不支持的媒体类型”。以下是我收到的回复 {StatusCode: 415, ReasonPhrase:'Unsupport Media Type', Version:
问题内容: 我试图了解DropWizard中身份验证和授权的工作方式。我已经阅读了他们的身份验证指南以及GitHub上的dropwizard- security 项目,但是觉得我仍然缺少一些重要的概念。 然后在我的子类中: 然后在资源方法中: 我觉得我有这个半正确配置为基本身份验证,但不理解的角色和发挥。特别: 如何从Jersey / JAX-RS客户端设置基本身份验证用户名/密码? 什么作用,并
有人知道如何扩展dropwizard界面吗?现在它只有所需的选项,但我需要为anooted方法添加权限。 例如: 我有一个用户管理员和一个普通用户。两者都可以进行身份验证并到达我的@auth带注释的资源。但我想允许一些(不是全部)http方法请求只为管理员和普通用户删除。如何在资源之外执行此操作?类似的东西
我知道PUT和POST之间的主要区别是幂等性,但我想在实际的层面上理解它。 例如,假设我必须处理用户更改用户名的请求: 有哪些不同之处: 而且 你会用哪一个?
本文向大家介绍HTTP提交方式之PUT详细介绍及POST和PUT的区别,包括了HTTP提交方式之PUT详细介绍及POST和PUT的区别的使用技巧和注意事项,需要的朋友参考一下 Http定义了与 服务器的交互方法,其中除了一般我们用的最多的GET,POST 其实还有PUT和DELETE 根据RFC2616标准(现行的HTTP/1.1)其实还有OPTIONS,GET,HEAD,POST,PUT,D