2013-06-17 23 views
13

Jersey 1.11 filtrelerindeki dinlenme aramaları için kullanıcı kimlik doğrulamasını uygulamaya çalışıyorum. Jersey 1.11 filtrelere özel yanıt ve iptal isteği nasıl eklenir

Bu

i

denedim ne
package com.ilrn.session.webservices.rest.filter; 

import com.ilrn.entity.User;; 
import com.sun.jersey.spi.container.ContainerRequest; 
import com.sun.jersey.spi.container.ContainerRequestFilter; 

public class CustomFilter implements ContainerRequestFilter{ 

    @Override 
    public ContainerRequest filter(ContainerRequest request) { 
     User user = Helper.getCurrentUser(); 
     if(user == null){ 
      //Need to add custom response and abort request 
     } 
     return request; 
    } 

} 

herkes aynı ulaşmak için herhangi bir yöntem ya da bir şey biliyor mu? Hata durumunda, özel bir yanıt göndermek isterseniz, bir WebApplicationException atmanız gerekir.

cevap

35

Bunu deneyin

WebApplicationException(Response response) 
      Construct a new instance using the supplied response 

: bir Response nesnesi oluşturun ve aşağıdaki istisna yapıcısı kullanarak geri göndermek

@Override 
public ContainerRequest filter(ContainerRequest request) { 
    User user = Helper.getCurrentUser(); 
    if(user == null){ 
     ResponseBuilder builder = null; 
     String response = "Custom message"; 
     builder = Response.status(Response.Status.UNAUTHORIZED).entity(response); 
     throw new WebApplicationException(builder.build()); 

    } 
    return request; 
} 
+0

sayesinde, :-) o teyit için, teşekkürler çalıştı – Ankur

+0

@Ankur Im memnun bir cazibe gibi çalıştı –

+0

@JunedAhsan Cevabı sağladığınız için teşekkür ederiz. Jersey 2.X'in belgeleri 1.X'den daha iyi ve yanıtınızı görene kadar bu kısım çok net değildi. –

İlgili konular