Evet, bunu javax.annotation.Priority
özniteliği ve varsayılan javax.ws.rs.Priorities
ile denetleyebilirsiniz. Örneğin isterseniz:
- Günlüğü filtre her zaman ilk
- Doğrulama filtresi daima başkalarının sonra çalışmalıdır sonraki
- Özel filtre çalışmalıdır sonraki
- Yetkilendirme filtresi çalışmalıdır çalışır
You yapabilir:
@Priority(Integer.MIN_VALUE)
public class CustomLoggingFilter implements ContainerRequestFilter
{
@Override
public void filter(ContainerRequestContext requestContext) throws IOException
{
// DO LOGGING HERE, THIS RUNS FIRST
}
}
@Priority(Priorities.AUTHENTICATION)
public class AuthenticationFilter implements ContainerRequestFilter
{
@Override
public void filter(ContainerRequestContext requestContext) throws IOException
{
String authHeader = requestContext.getHeaderString(HttpHeaders.WWW_AUTHENTICATE);
// DO AUTHENTICATION HERE, THIS RUNS SECOND
}
}
@Priority(Priorities.AUTHORIZATION)
public class AuthorizationFilter implements ContainerRequestFilter
{
@Override
public void filter(ContainerRequestContext requestContext) throws IOException
{
String authHeader = requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);
// DO AUTHORIZATION HERE, THIS RUNS THIRD
}
}
@Priority(Priorities.USER)
public class MyAwesomeStuffFilter implements ContainerRequestFilter
{
@Override
public void filter(ContainerRequestContext requestContext) throws IOException
{
// DO AWESOME STUFF HERE, THIS RUNS LAST
}
}
Hangi Jersey sürümü kullanıyor musunuz? – Jonas