[TOC]
## 一、登录
~~~
http://127.0.0.1:8866
admin/admin
~~~
## 二、访问后端api需带上token
~~~
放header方式:
Authorization:Bearer xxx
放参数方式:
http://localhost:9999/authSerfver/users?access_token=xxx
~~~
## 三、后端api方法不做认证方式
~~~
pigframe:
security:
ignore:
httpUrls: '不想认证拦截的url'
~~~
## 四、获取当前登录人对象
* 请求的方法参数SysUser上添加该注解,则注入当前登录人信息
~~~
//例1:只有id、username 和 roles
public void test(@LoginUser SysUser user)
//例2:能获取SysUser对象的所有信息
public void test(@LoginUser(isFull = true) SysUser user)
~~~
## 五、认证token类型切换
* 本项目token类型支持3种方式:`db`、`redis`、`jwt`
* 其中因为jwt使用的是非对称加密,所以认证服务(auth-server)需要配置为`authJwt`为私钥加密,其他服务(例如网关)配置为`resJwt`为公钥解密;
* 通过修改`pigframe.oauth2.token.store.type`变量即可改变

* 例如现在为jwt方式,需要修改为redis方式,只修改`auth-server`和`gateway-zuul`或者`gateway`的`pigframe.oauth2.token.store.type`变量为`redis`即可
## 六、无网络隔离的系统环境下认证修改
* 因为当前的代码是api网关统一认证的架构,适配有网络隔离的环境下使用
* 而如果无网络隔离的环境下代码需求进行调整,将api网关的认证相关内容移去各个微服务里,架构可参考 \[无网络隔离认证设计\]

具体步骤:
### 6.1. 把一下内容从api网关移去各个微服务里:
* `auth-core`jar包依赖
* `ResourceServerConfiguration`资源服务配置
* 删除`UserInfoHeaderFilter`类
* 配置文件里面认证相关配置

* `pubkey.txt`公钥
### 6.2. 修改`TokenArgumentResolver`类
改为通过SecurityContextHolder获取用户信息

## 七、token自动续签
* 目前续签功能只支持`redis token`模式,请先确保授权服务器和认证服务器的`pigframe.oauth2.token.store.type=redis`
* **认证服务器**开启自动续签功能`pigframe.security.auth.renew.enable=true`
* 白名单与非名单功能是**非必填项**,不配置默认所有应用的token都会续签

> 自动续签原理:[开发说明-认证理论-token自动续签设计](./token自动续签设计.md)
## 八、url级权限
该功能默认关闭,开启需要在网关添加url权限相关配置

### 8.1. 打开网关认证配置
`pigframe.security.auth.urlPermission.enable`设置为`true`
### 8.2. 配置只认证登录,登录后所有角色都能访问的url(可选项)
`pigframe.security.auth.urlPermission.ignoreUrls`
### 8.3. 配置白名单/黑名单(可选项)
`pigframe.security.auth.urlPermission.includeClientIds`
`pigframe.security.auth.urlPermission.exclusiveClientIds`
详情查看:[开发说明-认证理论-url级权限控制](./url级权限控制.md)
- 微服务介绍
- 软件架构设计
- 系统简介
- 运行环境
- 模块介绍
- 启动部署命令参数
- 打包说明
- 开发说明
- Java8
- 认证理论
- 有网络隔离
- 无网络隔离
- token自动续签设计
- url级权限控制
- 单点登录
- 登录
- 用户名密码(+验证码)登录
- 通过openId获取token
- 通过手机号获取token
- 第三方系统接口对接
- 第三方系统单点登录
- 通用刷新token
- 账号登出接口
- 统一异常处理
- 日志埋点工具
- 审计日志
- yml自定义配置自动提示
- Redis使用
- CacheManager集成
- 搜索中心
- 网关zuul动态路由
- swagger
- 解决开发环境的服务冲突和实例乱窜
- 多租户理论
- 多租户实现
- 分布式锁
- 分布式id生成器
- 分布式事务
- 分库分表sharding-sphere
- 消息队列
- 系统幂等性
- X 实时搜索系统设计
- Spring Cloud性能调优
- 链路跟踪
- JWT的RSA非对称密钥生成
- jdk
- Oracle
- OpenJDK
- Dragonwell
- JVM介绍
- 常见JVM内存错误及解决方案
- JVM分析工具详解
- nexus
- docker
- 安装
- docker-compose安装
- 私有仓库搭建
- 指定数据储存目录
- 添加私有仓库
- 提交拉取镜像
- X 免Dockerfile文件构建项目镜像
- 持续集成部署CI/CD
- Confluence知识管理
- JIRA事务与项目跟踪软件
- Gitlab代码仓库
- Jenkins自动化部署
- SonarQube代码检测
- Rancher容器管理平台
- nacos
- 部署
- Rancher部署nacos
- 注册中心
- 配置中心
- 多环境
- 生产部署方案
- X 通过Nginx来实现环境隔离
- Sentinel详解
- 动态规则扩展
- 在生产环境中使用 Sentinel
- 启动配置项
- X 网关流控
- ELK日志系统和慢查询SQL
- docker安装
- 普通安装
- Filebeat安装部署
- ES数据定期删除
- 没数据问题排查思路
- X Logstash的grok语法调试
- 慢查询sql
- 审计日志
- Elasticsearch性能优化
- APM监控
- SkyWalking介绍
- Zipkin,Pinpoint,SkyWalking三种服务链路监控组件分析
- 服务端部署
- 客户端部署
- 日志清理
- Metrics监控
- 二进制包部署
- docker部署
- docker安装各组件监控
- Grafana仪表盘和告警配置
- JMeter压力测试工具
- 使用说明
- 分布式事务
- TX-LCN(同步)
- X SEATA(同步)
- X RocketMQ(异步)
- 消息队列
- RocketMQ
- RocketMQ安装部署
- RocketMQ常见异常处理
- SpringCloud-Stream
- RabbitMQ
- Redis
- 单机安装
- 主从复制
- 主从复制+哨兵
- cluster集群
- 持久化方案
- MySQL
- 单机安装
- 主从复制
- 主从切换
- 主主复制
- 高可用
- 分表分库
- Canal数据库日志解析消费
- Canal安装
- 实时同步数据到ElasticSearch
- FastDFS
- docker安装
- centos安装
- 项目管理系统
- 禅道
- 111