Zuul鉴权和添加用户服务

要实现如下的功能

先创建一个user服务

加上客户端的注解

从配置中心获取user服务的配置

user服务在配置文件的配置,要引入redis的配置

启动成功后在eureka管理页面查看注册的服务,看到服务以及注册上来了

因为user服务以后肯定是要对外提供接口的,所以改造成多模块,目录结构如下

把刚开始的user的pom文件里面dependencies以及build全部剪切到其Server的pom文件中,再次启动,启动没问题就确定多模块化正常。

user服务的要实现登录功能,我在这里就不手把手教了,代码在https://github.com/hmilyos/springCloud-user.git    base分支。

需要注意的点是买家登录,我会往cookie写openid、redis写openid_具体用户的openid

买家登录

卖家登录,我会往cookie写token、redis写token_uuid

卖家登录

涉及到需要的代码有order:https://github.com/hmilyos/springCloud-order.git     auth分支

product:https://github.com/hmilyos/springCloud-product.git   auth分支  表结构在其doc文件夹下

user: https://github.com/hmilyos/springCloud-user.git    base分支

api-gateway: https://github.com/hmilyos/springCloud-api-gateway.git   auth分支

把代码pull下来后,先把api-gateway里面这两个买家卖家的过滤器都置为false,关闭不启用它

然后启动项目,通过网关来访问order的create、finish以及product的list的api,都是能访问的

order的finish访问正常
order的create访问正常
product的list的访问正常

此外还需要在api-gateway,配置一下,可以传递敏感信息

这时候针对create和finish做权限限制了,为了后期的维护,最好是分开来写这些判断

针对创建订单,要判断是否登录,同时还得是买家角色,在是否开启这里判断当前请求的是不是创建订单,是就开启,不是就不启用。

买家过滤器

先判断是否请求的是finish接口,是就启用,不是就不启用,

是就继续判断是否登录,登录角色是不是卖家

卖家过滤器

在未登录的情况下,访问create失败

未登录,create访问失败

在未登录的情况下,访问finish失败

在未登录的情况下,访问finish失败

因为list是不用做权限判断的,所以访问正常

在未登录的情况下,访问list成功

登录买家账号

登录买家账号成功
在买家登录的情况下,访问finish失败  

清除cookie和redis信息后,登录卖家账号

登录卖家账号

在卖家登录的情况下,访问finish成功

在卖家登录的情况下,访问finish成功

在卖家登录的情况下,访问create失败

在卖家登录的情况下,访问create失败

如此,我们针对买家卖家的访问权限就完成了。

你可能感兴趣的:(Zuul鉴权和添加用户服务)