AKKA HTTP:限制访问接口服务的请求HOST

接口服务部署上线后,需要对请求方进行限制,主要是限制请求的主机,只有指定主机发过来的请求才被受理,否则拒绝服务。akka http的API中的HostDirectives可实现此项功能,有以下三个可选项供选择:

def host(hostNames: String*): Directive0
def host(predicate: String ⇒ Boolean): Directive0
def host(regex: Regex): Directive1[String]

 限制主机名,主机判断,正则匹配等等。详细可参见官网文档:

https://doc.akka.io/docs/akka-http/current/routing-dsl/directives/host-directives/host.html#host

基于我的需求,只需要指定主机名就可以了,即第一个方法。

val route = host("hadoop01.com","hadoop02.com"){
    get{
       path("info"){
           业务逻辑
           complete("OK")
       }
    }
}

在发送请求时在header中要将请求的Hostname添加进去,只有配置了允许的主机名才可以访问。

需要说明的是,hostname要加在请求头中,官网的说明:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值