Portal-Gateway路由网关

1.1整体设计

 

  • Portal-Gateway的应用场景:用户已登录,请求其他服务。
  • 客户端的请求到达网关,网关会调用gateway系统进行请求身份合法性的验证:
  1. 验证不通则直接拒绝,并返回401;
  2. 如果通过验证,则转发到具体服务。

Portal-Gateway的架构图如下所示:

微服务架构权限 (1).png


1.2 gateway实现

主要实现的功能有:

    • 区分暴露接口(即对外直接访问)和需要合法身份登录之后才能访问的接口
    • 需要合法身份登录之后才能访问的接口,根据传入的Access token进行构造头部,头部主要包括userId等信息,可根据自己的实际业务在auth服务中进行设置。
    • 需要暴露接口设置permitAll(),其余接口进入身份合法性校验的流程,调用auth服务,如果通过则正常继续转发,否则抛出异常,返回401。

绘制的流程图如下:

微信截图_20200311190742.png


1.2.1 permitAll实现

对外暴露的接口可以直接访问,这可以依赖配置文件,而配置文件又可以通过配置中心进行动态更新,所以不用担心有hard-code的问题。经过permitall配置的路径

在配置文件中定义需要permitall的路径:

 

auth:
  permitall:
    -
      pattern: /login/**
    -
      pattern: /web/public/**

 

 

服务启动时,读入相应的Configuration,下面的配置属性读取以auth开头的配置:

 

@Bean
@ConfigurationProperties(prefix = "auth")
public PermitAllUrlProperties getPermitAllUrlProperties() {
    return new PermitAllUrlProperties();
}

 


1.2.2 自定义RemoteTokenServices实现

ResourceServerTokenServices接口其中的一个实现是RemoteTokenServices

RemoteTokenServices主要是查询auth服务的/check_token端点以获取一个token的校验结果。如果有错误,则说明token是不合法的。Spring Cloud Security添加如下默认配置,对应auth服务中的相应端点。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Portal-redis是一个组成Portal演示的一部分的实例。它是基于Redis的,并且需要安装和配置Redis才能使用。 要安装Portal-redis,首先需要安装Redis。可以从http://download.redis.io/releases/redis-2.8.17.tar.gz下载Redis源码包,并按照指示进行安装和配置。 安装配置完成后,需要设置Portal-redis的目录和配置文件。可以使用以下命令创建目录和复制相关文件: ``` mkdir -p /opt/portal/redis/bin mkdir -p /opt/portal/redis/conf mkdir -p /opt/portal/redis/logs cd /opt/portal/redis/redis-2.8.8 cp redis.conf sentinel.conf /opt/portal/redis/conf cd /opt/portal/redis/redis-2.8.8/src cp redis-server redis-cli redis-sentinel redis-benchmark /opt/portal/redis/bin ``` 可以使用以下命令设置别名并使配置文件生效: ``` vi /etc/profile alias redis-server='/opt/portal/redis/bin/redis-server /opt/portal/redis/conf/redis.conf' alias redis-cli='/opt/portal/redis/bin/redis-cli' source /etc/profile ``` 完成以上步骤后,Portal-redis就可以使用了。根据需要配置Portal-redis的redis.conf文件,可以设置它作为Redis的从服务器,并指定主服务器的IP和端口。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [biorepo-portal](https://download.csdn.net/download/weixin_42138408/18681187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用Spring-data-redis操作Redis的Sentinel](https://blog.csdn.net/weixin_33858485/article/details/85854974)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值