Eroare în injectarea dependențelor cu Jersey, Maven și Java

Încerc să creez un serviciu de odihnă care are Un filtru pentru fiecare cerere făcută, acest filtru care va face este să verifice dacă există un simbol, dacă acest lucru este corect continuat, altfel va returna un . Problema este că încerc să injectați o dependență de filtrul meu, dar îmi dă următoarea eroare:

divid id = „1Eeb036577″>

aparent dependența nu poate fi satisfăcută. Codul pe care îl folosesc este după cum urmează:

Filtru:

@[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()); } }}

Clasa pe care vreau să o injectați

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; }}

Interfața utilizată de clasa

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

tag-ul personalizat

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 {}

Am urmat un tutorial pentru validarea și crearea lui JWT și am fost blocat în această parte.

Leave a Comment

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *