![](/img/trans.png)
[英]How to generate a SAS token for Azure API (Api Management) in Java / Groovy?
[英]Generate token in rest java api
我有一个Java Restful api(我使用JAX-RS),我需要创建一个返回令牌的post方法。
但是我的方法在方法'gerarToken'中给出了例外
有谁能够帮助我? 遵循以下代码
@POST
@Path("/login")
@Consumes(MediaType.APPLICATION_JSON)
public Response fazerLogin(String credenciais) {
try {
Gson gson = new Gson();
UsuarioTO u = gson.fromJson(credenciais, UsuarioTO.class);
validarCrendenciais(u);
String token = gerarToken(u.getLogin(), 1);
return Response.ok(token).build();
} catch (Exception e) {
e.printStackTrace();
return Response.status(Response.Status.UNAUTHORIZED).build();
}
}
private String gerarToken(String login,Integer expiraEmDias ){
SignatureAlgorithm algoritimoAssinatura = SignatureAlgorithm.HS512;
Date agora = new Date();
Calendar expira = Calendar.getInstance();
expira.add(Calendar.DAY_OF_MONTH, expiraEmDias);
byte[] apiKeySecretBytes = DatatypeConverter.parseBase64Binary("E5c0l4r");
SecretKeySpec key = new SecretKeySpec(apiKeySecretBytes, algoritimoAssinatura.getJcaName());
JwtBuilder construtor = Jwts.builder()
.setIssuedAt(agora)
.setSubject(login)
.setIssuer(login)
.setWith(algoritimoAssinatura,key)
.setExpiration(expira.getTime());
return construtor.compact();
}
在'Jwts.builder'中引发该异常。MappableContainerException中包含的异常无法映射到响应,因此重新抛出HTTP容器java.lang.NoSuchFieldError:USE_DEFAULTS,位于com.fasterxml.jackson.annotation.JsonInclude $ Value。( com.fasterxml.jackson.databind.cfg.MapperConfig。(MapperConfig.java:44)处的JsonInclude.java:204)com.fasterxml.jackson处com.fasterxml.jackson.databind.ObjectMapper。(ObjectMapper.java:549)处的(MapperConfig.java:44)位于br.gov.es的io.jsonwebtoken.impl.DefaultJwtBuilder。(DefaultJwtBuilder.java:42)的.databind.ObjectMapper。(ObjectMapper.java:465)在io.jsonwebtoken.Jwts.builder(Jwts.java:116)位于br.gov.es.dataci.aprender.controleacesso.ControleAcesso.fazerLogin(ControleAcesso.java:46)的dataci.aprender.controleacesso.ControleAcesso.gerarToken(ControleAcesso.java:85)
我解决了问题。
由于jackson.annotations库的版本错误,它给方法带来了错误。
我将其更改为2.8版
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.