1、启动nginx,访问www.xuecheng.com
2、启动MongoDB:管理员身份进入cmd进入D:\Soft\MongoDB\bin
mongod --config “D:\Soft\MongoDB\mongo.conf” --install --serviceName “MongoDB”
启动:net start MongoDB
启动mongodb服务, 命令执行后,浏览器中输入http://127.0.0.1:27017看到如下界面即说明启动成功
MongoDB:root/123
打开studio3t
测试分页查询:http://localhost:31001/cms/page/list/1/10
Swagger接口测试:http://localhost:31001/swagger-ui.html
查询轮播图信息:http://localhost:31001/cms/config/getmodel/5a791725dd573c3574ee333f
测试轮播图模板:http://localhost:8088/freemarker/banner

3、启动rabbitmq:管理员身份进入D:\Soft\RabbitMQ Server\rabbitmq_server-3.7.7\sbin
安装管理插件:rabbitmq-plugins.bat enable rabbitmq_management
rabbitmq-service.bat start 启动服务
启动成功 登录RabbitMQ 进入浏览器,输入:http://localhost:15672
初始账号和密码:guest/guest

4、redis的启动
进入redis的安装目录,启动server,再启动client;
进入cmd命令行,进入D:\Soft\Redis目录。
redis-server redis.windows.conf

5、启动顺序:
申请令牌报服务器错误时需要启动以下项目:
eureka01
cms01
cmsclient
course
gateway
ucenterAuth
ucenter

登录顺序:
15-认证登录接口
16-写入Cookie
17-JWT查询
复制jwt中的内容放到Bearer后面—在xc_menu表中code字段值与findTeachplanList方法注解里的名字一致
22-通过课程编号查询课程列表–可以访问
23-查询课程列表–可以访问原因:
该方法上没有添加授权注解,spring security将不进行授权控制,只要jwt令牌合法则可以正常访问

复制jwt中的内容放到Bearer后面
jwt和redis中的jwt_token都可以

数据库密码:Followme@1234

XcServiceList:定义项目名称的常量类
SpringBoot中的日志需要引入spring-boot-starter-logging依赖,但是spring-boot-starter中已经默认包含了,所以不用再引入了。

登录走loadUserByUsername方法

Spring-security是自动化校验

该访问路径不存在
{
“timestamp”: “2020-07-09T00:43:24.194+0000”,
“status”: 404,
“error”: “Not Found”,
“message”: “No message available”,
“path”: “/course/coursebase/get/4028858162bec7f30162bed26cd70001”
}

Netsh wlan show profile name=“408-5G” key=clear

此博客只是为了记忆相关知识点,大部分为网络上的文章,在此向各个文章的作者表示感谢!

mongdb启动:进入mongdb文件的bin目录启动mongdb.exe;
​​​ http://www.xuecheng.com/​​​ http://www.xuecheng.com:31001/cms/page/list/1/3
http://localhost:31001/swagger-ui.html#!/cms45page45controller/findListUsingGET
复制项目后maven一下就可以了;

项目经验:
用户管理:使用用户名和密码进行登录

认证服务工程
1、pom中引入SpringCloud的security和oauth2依赖
2、user数据库中有6张表以“oauth_”开头的表,都是spring Security 自带的表

微服务接入认证,需要如下操作:
1、pom中添加oauth2依赖
2、在config包下创建ResourceServerConfig类
3、请求接口中要在http header中添加令牌
4、授权配置类ResourceServerConfig的configure方法中对请求路径进行放行

接口请求时携带JWT令牌时,就可以不用每次请求都要去请求认证服务工程,非常方便
JWT令牌由三部分组成,每部分中间使用点分隔,分别为:令牌类型Header,使用的哈希算法、负载Payload,设置过期时间戳和签名Signature,主要用于防止jwt内容被篡改,JWT令牌使用base64url进行编码

登录:
1、申请令牌
从eureka中获取认证服务的地址,设置header和body,利用restTemplate.exchange远程调用获取令牌信息:jti、refresh_token和access_token
2、令牌信息存储到redis中
将user_token:短令牌作为key,令牌信息作为value值存储到redis中并校验是否过期
3、短令牌存到Cookie
获取到短令牌jti并存储到cookie中,uid对应短令牌

退出
1、清楚cookie信息
从cookie中取出用户身份令牌uid
将cookie中maxAge设置为0
2、清楚redis信息
从redis中删除uid,token=user_token:uid,redis将token作为key,access_token作为value

查询用户信息接口:用户名
1、查询用户表
通过用户id查询用户表信息
2、查询用户权限表
通过用户id查询权限表信息
3、查询用户所属公司表
通过用户id查询用户所属公司表信息
然后拼装用户信息返回

使用Zuul网关里的ZuulFilter过滤器过滤头部是否包含Authorization,校验token的合法性,用户请求是否携带令牌
微服务之间使用feign进行远程调用,采用feign拦截器实现远程调用携带JWT