## 强烈自荐一个全新认证鉴权项目 sureness - 面向restful api的权限认证框架, 配置少灵活度高,长期支持
[sureness主页 - su.usthe.com](https://su.usthe.com)
[sureness github地址](https://github.com/tomsun28/sureness)
[sureness gitee地址](https://gitee.com/tomsun28/sureness)
> `sureness` 是我们在使用 `java` 权限框架 `shiro` 之后,吸取其良好设计加上一些想法实现的全新认证鉴权项目
> 面对 `restful api` 的认证鉴权,基于 `rbac` (用户-角色-资源)主要关注于对 `restful api` 的安全保护
> 无特定框架依赖(本质就是过滤器处拦截判断,已有springboot,quarkus,javalin,ktor等demo)
> 支持动态修改权限配置(动态修改哪些api需要被认证,可以被谁访问)
> 支持主流http容器 servlet 和 jax-rs
> 支持多种认证策略, `jwt, basic auth` ... 可扩展自定义支持的认证方式
> 基于改进的字典匹配树拥有的高性能
> 良好的扩展接口, demo和文档, 一个jar包就搞定
```
<dependency>
<groupId>com.usthe.sureness</groupId>
<artifactId>sureness-core</artifactId>
<version>0.1</version>
</dependency>
```
# bootshiro
**线上演示**
[管理系统](http://47.110.55.246)
[druid sql监控](http://47.110.55.246/api/druid/login.html) admin/admin
[Swagger api文档](http://47.110.55.246/api/swagger-ui.html)
[java doc](https://apidoc.gitee.com/tomsun28/bootshiro)
- ```bootshiro```是基于```springboot+shiro+jwt```的真正```restful URL```资源无状态认证权限管理系统的后端,前端[usthe](https://gitee.com/tomsun28/usthe)
- 区别于一般,提供页面可配置式的,动态的 ```restful api``` 安全管理支持
- 数据传输动态秘钥加密,```jwt```过期刷新,用户操作监控等 加固应用安全
## 使用和一些约定
--------
- 您使用此项目在后端开发好```api```后,需要在前端页面 资源配置->API管理 新增基于```ant```匹配风格的```api```(约定没有配置的api没有保护)
- ```eg:``` 获取角色关联的对应用户列表 ```rest-url```为 ```/role/user/{roleId}/{currentPage}/{pageSize}```访问方式为```GET```, 您需要在页面新增```api:``` ```/role/user/*/*/*``` ```GET```方式
- 自定义```url```匹配链约定为 ```url=``` ```url+"=="+httpMethod```
- 页面添加了```api```后,您需要在 资源配置->角色管理 配置您想要授权角色的API,菜单,关联用户等资源(约定授权给```auth_anon```角色的```api```可以被所有人访问,注意没有授权给任何角色的api是可以被任何人访问的)
- 授权菜单在第一次登录时已经获取存储到```sessionStorage```防止重复获取,您授权变更菜单之后想要看的效果需要关闭页面重新打开(或者清除```sessionStorage```之后会自动获取授权菜单)
- have fun
**学习交流QQ群** **482621971**
生活不易,(5月中后)求接私活
## 项目的基础框架设计:
总的长这样:
![image1](/image/image1.PNG)
<br>
#### 前端usthe
基于```angular5 + angular-cli + typeScript + rxjs + bootstrap + adminLTE```,践行angular最佳实践。
过程中node,webpack等有用到过,但我不熟。。。
#### 后端bootshiro
基于```springboot + apache shiro + mybatis```框架,restful风格api,自定义状态码,json-web-token,druid数据库连接池,swagger文档生成,redis存储refreshtoken和动态秘钥,maven,MD5单向加密和AES双向等。。。
#### gate -nginx
这个nginx作为反向代理服务器,解决了跨域,真实IP头(现服务器端支持跨域可不用nginx)。另一个nginx作为angular应用服务器,tomcat作为bootshiro的服务器。
反向代理的nginx.conf见: [conf](https://github.com/tomsun28/DockerFile/blob/master/nginx/nginx.conf)
#### 持续集成
流程长这样~:
![image2](/image/image2.PNG)
增加kubernetes支持:
bootshiro.yaml
详细实现技术见另一篇: [docker学习](https://segmentfault.com/a/1190000013088818)
## 相关文档
--------
- [前后端分离实践](https://segmentfault.com/blog/tomsun28)
- [api权限管理系统与前后端分离实践](https://segmentfault.com/a/1190000014368885)
- [基于shiro的改造集成真正支持restful请求](https://segmentfault.com/a/1190000014545172)
- [签发的用户认证token超时刷新策略](https://segmentfault.com/a/1190000014545422)
- [传输密码动态加密解密](https://segmentfault.com/a/1190000014544933)
ps(之前是写在下面的太长有点乱)
## 部署
--------
1.IDE启动调试
- fork 项目到自己的仓库(欢迎star^.^)
- clone 项目到本地 git clone https://gitee.com/yourName/bootshiro.git
- 用idea导入
- 更改开发环境mysql数据库和redis地址(前提安装数据库并导入usthe.sql创建数据库usthe)
- 运行BootshiroApplication
- bootshiro就可以提供api了 http://localhost:8080
- 推荐使用postman进行api调试
- 项目中的postman_test_example.json文件就是postman样例,导入即可
2.docker本地启动
- fork 项目到自己的仓库(欢迎star^.^)
- clone 项目到本地 git clone https://gitee.com/yourName/bootshiro.git
- 更改生产环境mysql数据库和redis地址(前提安装数据库并导入usthe.sql创建数据库usthe)
- 前提已经存在maven环境,docker环境([docker常用看这里](https://segmentfault.com/a/1190000013088818))
- mvn clean install -Dmaven.test.skip=true打出jar包
- 在项目目录下 docker build -t bootshiro:1.0 .
- docker images看是否生成镜像成功
- 运行 docker run -d -p 8080:8080 --name haiGirl bootshiro:1.0
- docker ps 就可以看见您的haiGirl了
- bootshiro就可以提供api了 http://localhost:8080
3.jenkins+docker持续集成持续部署CICD
- fork 项目到自己的仓库(欢迎star^.^)
- clone 项目到本地 git clone https://gitee.com/yourName/bootshiro.git
- 更改生产和开发环境mysql数据库和redis地址(前提安装数据库并导入usthe.sql创建数据库usthe)
- 搭建CICD环境有点繁琐,[看这里最下面](https://segmentfault.com/a/1190000013088818)
- 参照搭建完成后,bootshiro对应的jenkins下运行shell:
````
#!/bin/bash
#build in jenkins sh
#docker docker hub仓库地址,之后把生成的镜像上传到 registry or docker hub
REGISTRY_URL=127.0.0.1:5000
#docker login --username tomsun28 --password xxxx
#根据时间生成版本号
TAG=$REGISTRY_URL/$JOB_NAME:`date +%y%m%d-%H-%M`
#使用maven 镜像进行编译 打包出 jar 文件
docker run --rm --name mvn -v /opt/dockerWorkspace/maven:/root/.m2 \
-v /opt/dockerWorkspace/jenkins_home/workspace/$JOB_NAME:/usr/src/mvn -w /usr/src/mvn/ \
tomsun28/maven:1.0 mvn clean install -Dmaven.test.skip=true
#使用放在项目下面的Dockerfile打包生成镜像
docker build -t $TAG $WORKSPACE/.
docker push $TAG
docker rmi $TAG
#判断之前运行的容器是否还在,在就删除
if docker ps -a | grep -i $JOB_NAME;then
docker rm -f $JOB_NAME
fi
#用最新版本的镜像运行容器
docker run -d -p 8085:8080 --name $JOB_NAME -v /opt/dockerWorkspace/tomcat/$JOB_NAME/logs:/opt/tomcat/logs $TAG
````
## 仓库
gitee(main rep):
[bootshiro](https://gitee.com/tomsun28/bootshiro)
[usthe](https://gitee.com/tomsun28/usthe)
github:
[bootshiro](https://github.com/tomsun28/bootshiro)
[usthe](https://github.com/tomsun28/usthe)
。。。。。持续同步更新。。。。
======================================
欢迎一起完善哦^^
<br>
<br>
### 效果展示
![image4](/image/image4.PNG)
![image5](/image/image5.PNG)
![image6](/image/image6.PNG)
![image7](/image/image7.PNG)
thanks:
[Howieair](http://iconfont.cn/user/detail?spm=a313x.7781069.0.d214f71f6&uid=187147)的小猪图标
[zhangkaitao](http://jinnianshilongnian.iteye.com/blog/2018936)的跟我学shiro
网络上前辈们的教程文章开源项目
Thanks Open Sour
没有合适的资源?快使用搜索试试~ 我知道了~
bootshiro权限管理系统 v1.0.zip
共115个文件
java:83个
xml:11个
png:8个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 29 浏览量
2024-03-18
21:30:05
上传
评论
收藏 717KB ZIP 举报
温馨提示
bootshiro权限管理系统 v1.0.zip
资源推荐
资源详情
资源评论
收起资源包目录
bootshiro权限管理系统 v1.0.zip (115个子文件)
mvnw.cmd 5KB
Dockerfile 321B
.gitignore 249B
说明.htm 4KB
BonJwtFilter.java 8KB
RoleController.java 8KB
PasswordFilter.java 7KB
JsonWebTokenUtil.java 7KB
AccountController.java 7KB
ResourceController.java 6KB
RsaUtil.java 5KB
ShiroFilterChainManager.java 5KB
AesUtil.java 5KB
RequestResponseUtil.java 5KB
UserController.java 4KB
AuthResourceMapper.java 4KB
DataSourceConfiguration.java 4KB
LogTaskFactory.java 4KB
XssUtil.java 3KB
RestPathMatchingFilterChainResolver.java 3KB
AbstractPathMatchingFilter.java 3KB
JwtRealm.java 3KB
ResourceServiceImpl.java 3KB
XssSqlHttpServletRequestWrapper.java 3KB
AuthUserMapper.java 3KB
AuthUser.java 3KB
JwtAccount.java 2KB
RestShiroFilterFactoryBean.java 2KB
ResourceService.java 2KB
UserServiceImpl.java 2KB
RoleServiceImpl.java 2KB
PasswordRealm.java 2KB
IpUtil.java 2KB
ShiroConfiguration.java 2KB
LogController.java 2KB
AuthResource.java 2KB
RolePermRule.java 2KB
DruidConfiguration.java 2KB
GlobalExceptionHandler.java 2KB
MybatisGenerator.java 2KB
AuthRoleResourceMapper.java 2KB
Message.java 2KB
RealmManager.java 2KB
Md5Util.java 2KB
AuthUserRoleMapper.java 2KB
AuthRoleMapper.java 2KB
MenuTreeNode.java 2KB
SpringContextHolder.java 2KB
JwtMatcher.java 2KB
AccountServiceImpl.java 2KB
AuthOperationLog.java 1KB
JwtToken.java 1KB
UserService.java 1KB
BootshiroApplication.java 1KB
SecurityCorsConfiguration.java 1KB
AuthAccountLog.java 1KB
PasswordToken.java 1KB
LogFactory.java 1KB
AuthRole.java 1KB
SwaggerConfiguration.java 1KB
XssSqlFilter.java 1KB
RoleService.java 1KB
AonModularRealmAuthenticator.java 1KB
AuthRoleResource.java 1KB
TreeUtil.java 1KB
AuthUserRole.java 1KB
LogExeManager.java 1013B
BaseAction.java 967B
Account.java 899B
BaseTreeNode.java 897B
OverIsMergeablePlugin.java 849B
AccountService.java 801B
PasswordMatcher.java 784B
XssSqlStringJsonSerializer.java 781B
AccountProviderImpl.java 741B
ShiroFilterRulesProviderImpl.java 721B
AuthOperationLogMapper.java 712B
StatelessWebSubjectFactory.java 707B
AuthAccountLogMapper.java 692B
CommonUtil.java 689B
OperationLogServiceImpl.java 683B
AccountLogServiceImpl.java 664B
ShiroFilterRulesProvider.java 566B
AccountProvider.java 415B
OperationLogService.java 401B
AccountLogService.java 377B
BootshiroApplicationTests.java 75B
postman_test_example.json 7KB
LICENSE 1KB
README.md 8KB
mvnw 6KB
image8.PNG 124KB
image1.PNG 116KB
image2.PNG 108KB
image7.PNG 93KB
image5.PNG 72KB
image3.PNG 63KB
image6.PNG 60KB
image4.PNG 52KB
usthe.sql 33KB
共 115 条
- 1
- 2
资源评论
芝麻粒儿
- 粉丝: 6w+
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功