ich mehrere Stunden bin versucht, den Mechanismus erklärt in Thema, um die Arbeit: Best practice for REST token-based authentication with JAX-RS and Jerseykann nicht um die Arbeit ContainerRequestFilter
Aber nach dem Debuggen scheint es, dass ich nicht in der ContainerRequestFilter bin zu stoppen ... Hier ist, was ich habe :
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.ws.rs.NameBinding;
@NameBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface Secured { }
Mein AuthenticationFilter ist genau das gleiche wie das, was in dem Thema (Kopie Vergangenheit) erklärt
ich habe einen Endpunkt:
@Path("/")
@WebService(name="account", targetNamespace="")
public interface ProfileCXFService
{
@GET
@Secured
@Path("/displayProfile")
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_JSON})
public Response displayProfile(@QueryParam("token")String token, @QueryParam("profileID")String profileID);
}
Und hier ist der Inhalt meiner web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>CxfRestService</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/beans.xml</param-value>
</context-param>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Hier wird die Anfrage ich mit Postbote sende (Für den Moment der Token im Inneren des Körpers, aber auch wenn ich Legen Sie es in den Authentication header param, es funktioniert nicht). Das Problem ist, dass der Code des Endpunkts direkt ausgeführt wird und der Filter nicht aufgerufen wird.
GET /BD-BD/rest/account/displayProfile?token=vfE1qPLiiyPx20ymp0C483VxcpCj07HKAB8cTmgXamp;profileID=35 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 0908ac3d-17ab-55ef-337a-fabfe7fed387
Ist eine Konfiguration erforderlich? Vielen Dank im Voraus :)
Vielen Dank !! Ich werde nachsehen ! – Geoffrey
@Geoffrey Lass es mich wissen, wenn es funktioniert. –
Morgen früh werde ich Sie wissen :) – Geoffrey