文档

课后练习:通过 MOSN mecha 完成鉴权开发

更新时间:
一键部署

简单鉴权拦截器介绍

ehttp 协议的服务端和客户端源码地址如下:

https://github.com/mosn/extensions/tree/master/java-quickstart/java-plugin-quickstart
  • ehttp-server 对应服务端程序,服务端启动监听 8089 端口。

  • ehttp-client 对应客户端程序,客户端启动监听 8008 端口。

ehttp 协议客户端支持 REST API 触发 RPC 调用:

curl localhost:8008/hello\?user=admin

# 访问本地 8008 端口查询用户信息

拦截器可以直接中断 MOSN 处理流程:

f.receiveHandler.SendHijackReplyWithBody(200, headers, "403 Forbidden")
return api.StreamFilterStop

代码自动生成提供 MOSN 启动后手动执行服务发布/订阅的脚本,您在 MOSN 首次启动手动执行即可:

cd ~/go/src/quick-start-practice/configs/codecs/ehttp/
bash ./auto_pub_sub.sh

课后练习

对 ehttp 协议进行扩展,实现拦截器插件 auth,只允许请求参数携带 user=admin 才允许访问。

要求:请求参数没有携带 user 或者 user 值不是 admin,则 MOSN 拒绝访问。

例如:

  • curl localhost:8008/hello\?user=admin 允许访问。

  • curl localhost:8008/hello 禁止访问。

  • curl localhost:8008/hello\?user=yiji 禁止访问。

Image 3

观看以下视频,了解鉴权拦截器开发步骤和注意事项: