Wie Abfangen, REST-Endpunkt zu erhalten, werden alle Header?
Mein Aktueller code ist
@Path("login")
@RequestScoped
public class LoginResource {
@GET
@SecurityChecked
public Response getUser(@HeaderParam("AUTH") @Nonnull final String authToken) {
return Response.ok("authenticated successfully.").build();
}
}
sowie @SecurityChecked
ist benutzerdefinierte annotation als
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.interceptor.InterceptorBinding;
@Inherited
@InterceptorBinding
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface SecurityChecked {
}
- und Interceptor-Klasse als
@Interceptor
@SecurityChecked
public class SecurityCheckInterceptor {
private static final Logger LOGGER = LoggerFactory.getLogger("SecurityCheckInterceptor");
@AroundInvoke
public Object validateUser(final InvocationContext context) throws Exception {
final Object[] params = context.getParameters();
LOGGER.info("Authentication token: " + Arrays.toString(params));
return context.proceed();
}
}
Wenn ich es laufen sehe ich
Authentication token: [1a629d035831feadOO4uFReLyEW8aTmrCS]
Problem?
- In meinem Ressource-Klasse, die ich zu bestehen hatte die @HeaderParam
parameter
- Wie kann ich Lesen Sie alle HTTP
Header kommt vom client?
Ideal?
- Wenn die getUser()
keine @HeaderParam
Eingang und
- Interceptor sollte in der Lage sein, um Ihnen all die HTTP
Header
Wie kann ich das tun?
- Haben Sie versucht, um zu injizieren, HttpHeaders in Ihrem
Interceptor
? (über@Context private HttpHeaders httpHeaders;
)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich dies Problem gelöst durch ändern der interceptor ich habe die folgende code
Annotation
Ressource-Klasse
Interceptor-Klasse
und dann habe ich ein Integrations-tests durch die Bereitstellung der Ressource Klasse, in den Sie JBoss und die Ausgabe folgender Befehle auf der Kommando-Zeile