Jersey框架:使用注解实现用户认证

业务场景描述

微服务框架势必要面临用户鉴权问题,如在搭建系统应用时必须要考虑什么资源可以公开,什么资源只有系统用户才可以访问?
本文针对Jersey框架,就REST资源的用户鉴权提供可行的解决思路,以简洁方便的注解形式实现。

Jersey的过滤器(Filter)

当你想要修改请求或响应参数,如HTTP请求响应头,可以使用过滤器来完成任务。例如,希望添加一个响应头X-Powered-By 到每个生成的响应中,可以使用ResponseFilter来完成添加。(例子来自官方文档)

@Provider
@PreMatching
public class PoweredByResponseFilter implements ContainerResponseFilter{
   
	public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
			throws IOException {
   
		responseContext.getHeaders().add("X-Powered-By", "Jersey :-)");
	}
}

ResponseFilter必须继承于ContainerResponseFilter,而且必注册为Provider,通过@Provider注解定义的Filter。 ResponseFilter 会被执行,即使资源方法没有执行。Filter()方法有两个参数,ContainerRequest以及ContainerResponse,分别用来读取请求参数以及写入响应参数。

命名绑定@NameBinding

被@NameBinding注解修饰的注解是元注解,可以注解其它注解,其他注解具体实现后才可以分配给一个资源方法。

定义元注解@UserAuth

使用Java标准的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值