上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 93 下一页
摘要: 2.2.1 Feign介绍 Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端。Spring Cloud引入 Feign并且集成了Ribbon实现客户端负载均衡调用。 上节课的restTemplate的方式需要定义url地址 还需要定义返回的类 阅读全文
posted @ 2019-10-12 23:47 高山-景行 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 2.1.2 Ribbon测试 Spring Cloud引入Ribbon配合 restTemplate 实现客户端负载均衡。Java中远程调用的技术有很多,如: webservice、socket、rmi、Apache HttpClient、OkHttp等,互联网项目使用基于http的客户端较多,本项 阅读全文
posted @ 2019-10-12 23:24 高山-景行 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 2 Feign远程调用 在前后端分离架构中,服务层被拆分成了很多的微服务,服务与服务之间难免发生交互,比如:课程发布需要调用 CMS服务生成课程静态化页面,本节研究微服务远程调用所使用的技术。 下图是课程管理服务远程调用CMS服务的流程图: 1、cms服务将自己注册到注册中心。 2、课程管理服务从注 阅读全文
posted @ 2019-10-12 15:07 高山-景行 阅读(175) 评论(0) 推荐(0) 编辑
摘要: cms相当于客户端 配置客户端的信息 后面加逗号分隔开 50102表示向两台eureka服务上报服务,如果有一台死掉了 那么还可以上另外的一台去注册服务 直接把ip注册到eureka 启动类加注解 重启cms的服务。eureka的注册列表内 就可以看到cms的微服务了 eureka2也有了 课程管理 阅读全文
posted @ 2019-10-12 09:20 高山-景行 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1.3.2.2 高可用环境搭建 Eureka Server 高可用环境需要部署两个Eureka server,它们互相向对方注册。如果在本机启动两个Eureka需要 注意两个Eureka Server的端口要设置不一样,这里我们部署一个Eureka Server工程,将端口可配置,制作两个 Eure 阅读全文
posted @ 2019-10-11 23:28 高山-景行 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 我们先搭建单机环境 govern是治理的意思, 这样就把工程创建好了 创建包 创建SpringBoot的启动类。 在父工程里面已经确定了Spring Cloud的版本了。相当于锁定了版本 接下里只需要在子工程内引入eureka的包。那么这一些列相关的依赖jar包就自动的引进来。并且版本也 不用你管了 阅读全文
posted @ 2019-10-11 22:45 高山-景行 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 1 Eureka注册中心 1.1 需求分析 在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中 心来管理微服务信息。 为什么 要用注册中心? 1、微服务数量众多,要进行远程调用就需要知道服务端的ip地址和端口,注册中心帮助我们管理这些服务 阅读全文
posted @ 2019-10-11 22:18 高山-景行 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 4.2 Feign 拦截器 4.2.1 定义Feign拦截器 微服务之间使用feign进行远程调用,采用feign拦截器实现远程调用携带JWT。 在common工程添加依赖: <dependency> <groupId>org.springframework.cloud</groupId> <art 阅读全文
posted @ 2019-10-11 14:37 高山-景行 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 4.1 需求分析 前边章节已经实现了用户携带身份令牌和JWT令牌访问微服务,微服务获取jwt并完成授权。 当微服务访问微服务,此时如果没有携带JWT则微服务会在授权时报错。 测试课程预览: 1、将课程管理服务和CMS全部添加授权配置 2、用户登录教学管理前端,进入课程发布界面,点击课程发布,观察课程 阅读全文
posted @ 2019-10-11 14:13 高山-景行 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 3.4.1需求分析 要想实现只查询自己的课程信息则需要获取当前用户所属的企业id。 1、认证服务在用户认证通过将用户所属公司id等信息存储到jwt令牌中。 2、用户请求到达资源服务后,资源服务需要取出header中的jwt令牌,并解析出用户信息。 说明令牌中已经有公司的id了 controller拿 阅读全文
posted @ 2019-10-11 13:48 高山-景行 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 重启课程管理服务 刷新页面,令牌到期需要先登陆 首先拿到company的id 测试2号公司 阅读全文
posted @ 2019-10-11 13:03 高山-景行 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 先定义接口 实现接口 service 需要通过conpanyId去查询课程的列表 定义dao 要查课程的图片 名称 等相关信息。所以使用Mybatis来实现 定义Mapper 看这个dao里面方法在哪里用了。 当时在做测试分页的时候用到了 放回一个封装后的结果 这里面就有课程的图片 定义mapper 阅读全文
posted @ 2019-10-11 12:59 高山-景行 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 3.3 我的课程细粒度授权 3.3.1 需求分析 1、我的课程查询,细粒度授权过程如下: 1)获取当前登录的用户Id 2)得到用户所属教育机构的Id 3)查询该教学机构下的课程信息 最终实现了用户只允许查询自己机构的课程信息。 2、修改课程管理服务“我的课程”的功能,根据公司Id查询课程,思路如下: 阅读全文
posted @ 2019-10-11 12:08 高山-景行 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 3 细粒度授权 3.1 需求分析 什么是细粒度授权? 细粒度授权也叫数据范围授权,即不同的用户所拥有的操作权限相同,但是能够操作的数据范围是不一样的。一个 例子:用户A和用户B都是教学机构,他们都拥有“我的课程”权限,但是两个用户所查询到的数据是不一样的。 本项目有哪些细粒度授权? 比如: 我的课程 阅读全文
posted @ 2019-10-11 12:05 高山-景行 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 携带JWT授权 登陆后jwt已经存到了sessionStorage里面 当进行微服务的请求就要携带令牌。我们在拦截器里面做文章。 在axios的intercepters拦截器上 手工的给这个课程 造一个图片的数据 刷新页面图片就有了。图片不显示的原因是因为图片的服务没有起来。 跟踪请求,在请求的时候 阅读全文
posted @ 2019-10-10 23:36 高山-景行 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 把下面赋值到nginx中 前端的服务需要配置一下 重启nginx 启动教学管理的前端 没有登陆直接就进来教学管理的后端了 下面我们要做的就是这两件事 1、前端页面校验用户的身份,如果用户没有登录则跳转到登录页面 2、前端请求资源服务需要在http header中添加jwt令牌,资源服务根据jwt令牌 阅读全文
posted @ 2019-10-10 23:26 高山-景行 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 4 前端集成认证授权 4.1 需求分析 截至目前认证授权服务端的功能已基本完成,本章实现前端集成认证授权功能。 前端集成认证授权功能需要作如下工作: 1、前端页面校验用户的身份,如果用户没有登录则跳转到登录页面 2、前端请求资源服务需要在http header中添加jwt令牌,资源服务根据jwt令牌 阅读全文
posted @ 2019-10-10 23:11 高山-景行 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 认证服务查询用户权限 如果权限为空就New一个对象出来。 因为如果为空的话 下面 forEach就会报空指针的异常 启动服务测试 重新登陆 看到userExt已经获取到了用户的权限 权限的字符串 复制redis里面的jwt jwt复制到这里进行测试。 查询出来用户的权限 现在就 可以拿着这个权限来访 阅读全文
posted @ 2019-10-10 21:47 高山-景行 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 3.3 用户中心查询用户权限 3.3.1 需求分析 认证服务请求用户中心查询用户信息,用户需要将用户基本信息和用户权限一同返回给认证服务。 本小节实现用户查询查询用户权限,并将用户权限信息添加到的用户信息中返回给认证服务。 最终目的是硬编码的权限 改成从数据库内查询 认证服务要通过用户中心来获取用户 阅读全文
posted @ 2019-10-10 21:37 高山-景行 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 3 动态查询用户权限 3.1 需求分析 截至目前在测试授权时使用的权限数据是静态数据,正常情况的流程是: 1、管理员给用户分配权限,权限数据写到数据库中。 2、认证服务在进行用户认证时从数据库读取用户的权限数据(动态数据) 本节实现动态权限数据。 之前权限是这里硬编码 写死的权限 3.2.1 数据模 阅读全文
posted @ 2019-10-10 21:22 高山-景行 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 现在没权限返回的信息 控制台抛出的异常是这个 : 不允许访问,这是Spring Security跑出来的 我们在异常处理器里面打个断点看一下 重新测试,就跳转到了异常捕获类这里。 这是异常的类型 这里定义了Map, 在Map里面可以定义异常类型对应的错误代码 解决方法?在这里再定义类型的错误代码? 阅读全文
posted @ 2019-10-10 20:45 高山-景行 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 这是我们课程的服务里面 加了授权的方法 重启课程管理的服务 首先需要登陆 在redis复制token 访问课程列表 用最新复制的令牌 最新token可以 调用teachplan方法 调用 一个没加注解的方法 所以肯定可以访问 结束 阅读全文
posted @ 2019-10-10 13:01 高山-景行 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 2.3 方法授权实现 2.3.1资源服务添加授权控制 1、要想在资源服务使用方法授权,首先在资源服务配置授权控制 1)添加spring-cloud-starter-oauth2依赖。 2)拷贝授权配置类ResourceServerConfig。 3)拷贝公钥。 课程管理这个服务已经被授权控制了 如果 阅读全文
posted @ 2019-10-10 12:54 高山-景行 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 修改认证服务的UserDetailServiceImpl类,下边的代码中 permissionList列表中存放了用户的权限, 并且将权限标识按照中间使用逗号分隔的语法组成一个字符串,最终提供给Spring security。 授权是SpringSecuriy的本职工作, 虽然可以在UserJwt里 阅读全文
posted @ 2019-10-10 12:45 高山-景行 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 2 方法授权 2.1需求分析 方法授权要完成的是资源服务根据jwt令牌完成对方法的授权,具体流程如下: 1、生成Jwt令牌时在令牌中写入用户所拥有的权限 我们给每个权限起个名字,例如某个用户拥有如下权限: course_find_list:课程查询 course_pic_list:课程图片查询 2、 阅读全文
posted @ 2019-10-10 12:31 高山-景行 阅读(246) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 93 下一页