2011-12-05 53 views

回答

2

我不會把這個放在控制器本身中,而是放在你希望保護的資源類的com.sun.jersey.spi.container.ContainerRequestFilter中,但應該給你基本的想法。

@Context 
private HttpServletRequest request; 

@GET 
@Produce(MediaType.APPLICATION_JSON) 
public String findItems(){ 
    String auth = request.getHeader("authorization"); 
    if (auth != null) { 
     String basic_prefix = "Basic "; 
     if (auth.startsWith(basic_prefix)) { 
      String auth_data = new String(Base64.decode(auth.substring(basic_prefix.length()))); 
      String [] user_and_key = auth_data.split(":", 2); 
      // user and password available here 
     } else { 
      // reject access 
     } 
    } else { 
     // reject access 
    } 
}     
+0

Thanks.and你能告訴我如何訪問摘要認證 – user996505

0

通常情況下,認證由容器來處理,你只需要添加相應的約束web.xml中指出哪些URI就應該保護,需要什麼樣的權威性的。然後在球衣中,您可以從SecurityContext獲取角色和主體信息,您可以將其注入到資源中。