JAX-WS如何在端点外注入SecurityContext

时间:2018-06-14 05:22:55

标签: java web-services authentication jax-ws security-context

我遇到了jax-ws注入SecurityContext的问题。请按照以下示例进行操作:

@JWTTokenNeeded
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/list")
public String list(PublishProductsRequest request, @Context SecurityContext securityContext) {

    User user = userService.getByUserPrincipal(securityContext.getUserPrincipal());
}

此时使用@Context SecurityContext我可以收到我需要的信息。

在此之后我需要调用一个搜索某些信息的服务,但是这个信息需要由customerId过滤,而这个customerId在用户内部。

服务将是这样的:

productService.list();

在服务中我将有一个DAO,如下:

productDao.list();

Dao里面的选择就像这样:

select * from products where customer_id = :user.customer_id;

所以,我想知道是否有可能或最好的方法将用户注入服务(@component)或Dao(@Repository)内。

当然这是一个例子,但我有很多需要用户信息的方法,我不想把它作为参数传递,如:

productService.list(user);

productDao.list(user);

0 个答案:

没有答案