Erro na inxección de dependencias con Jersey, Maven e Java

Estou tentando crear un servizo de descanso que ten Un filtro para cada solicitude que se fai, este filtro que fará é verificar se hai un token, se isto é correcto continuado, se non, devolverá un UNAUTHORIZED. O problema é que intento inxectar unha dependencia do meu filtro, pero dáme o seguinte erro:

Aparentemente a dependencia non pode ser satisfeita. O código que uso é o seguinte:

Filtro:

@[email protected]@Priority(Priorities.AUTHENTICATION)public class JWTTokenNeededFilter implements ContainerRequestFilter { @Inject private TokenFactory tokenFactory; @Override public void filter(ContainerRequestContext requestContext) throws IOException { //Obteniendo los encabezados HTTP Authorization de la peticion String encabezadosAut = requestContext.getHeaderString(HttpHeaders.AUTHORIZATION); //Extrayendo el token de los encabezados HTTP Authorization String token = encabezadosAut.substring("Bearer".length()).trim(); try { //Validando el token Key key = tokenFactory.generarToken(); Jwts.parser().setSigningKey(key).parseClaimsJws(token); } catch (ExpiredJwtException | UnsupportedJwtException | MalformedJwtException | SignatureException | IllegalArgumentException e) { requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).build()); } }}

A clase que quero inxectar

import java.security.Key;import javax.crypto.spec.SecretKeySpec;/** * */public class GeneradorDeTokens implements TokenFactory{ @Override public Key generarToken(){ String llave="simplekey"; Key key=new SecretKeySpec(llave.getBytes(),0,llave.getBytes().length,"DES"); return key; }}

A interface utilizada por clase

import java.security.Key;/** * */public interface TokenFactory { Key generarToken();}

a etiqueta personalizada

import static java.lang.annotation.ElementType.METHOD;import static java.lang.annotation.ElementType.TYPE;import java.lang.annotation.Retention;import static java.lang.annotation.RetentionPolicy.RUNTIME;import java.lang.annotation.Target;import javax.ws.rs.NameBinding;/** * */@[email protected](RUNTIME)@Target({TYPE,METHOD})public @interface JWTokenNeeded {}

seguín un tutorial para a validación e a creación de JWT e estiven preso nesta parte.

Leave a Comment

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *