同步操作将从 tomsun28/bootshiro 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
bootshiro
是基于springboot+shiro+jwt
的真正restful URL
资源无状态认证权限管理系统的后端,前端usthe
restful api
安全管理jwt
过期刷新,用户操作监控等 加固应用安全api
后,需要在前端页面 资源配置->API管理 新增基于ant
匹配风格的api
eg:
获取角色关联的对应用户列表 rest-url
为 /role/user/{roleId}/{currentPage}/{pageSize}
访问方式为GET
, 您需要在页面新增api:
/role/user/*/*/*
GET
方式url
匹配链约定为 url=
url+"=="+httpMethod
api
后,您需要在 资源配置->角色管理 配置您想要授权角色的API,菜单,关联用户等资源(约定授权给auth_anon
角色的api
可以被所有人访问)sessionStorage
防止重复获取,您授权变更菜单之后想要看的效果需要关闭页面重新打开(或者清除sessionStorage
之后会自动获取授权菜单)总的长这样:
基于angular5 + angular-cli + typeScript + rxjs + bootstrap + adminLTE
,践行angular最佳实践。
过程中node,webpack等有用到过,但我不熟。。。
基于springboot + apache shiro + mybatis
框架,restful风格api,自定义状态码,json-web-token,druid数据库连接池,swagger文档生成,redis存储refreshtoken和动态秘钥,maven,MD5单向加密和AES双向等。。。
这个nginx作为反向代理服务器,解决了跨域请求的问题。另一个nginx作为angular应用服务器,tomcat作为bootshiro的服务器。
反向代理的nginx.conf见: conf
流程长这样~:
详细实现技术见另一篇: docker学习
1.IDE启动调试
2.docker本地启动
3.jenkins+docker持续集成持续部署CICD
#!/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
4.nginx反向代理
由于这个跨域是在nginx上解决的,要使前端真正能访问api还得使用nginx反向代理bootshiro后端 nginx反向代理配置
如果您不想这样,可以在bootshiro添加拦截器拦截response 给它的header添加点跨域支持:
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("P3P", "CP=CAO PSA OUR");
response.addHeader("Access-Control-Allow-Methods", "POST,GET,TRACE,OPTIONS");
response.addHeader("Access-Control-Allow-Headers", "Content-Type,Origin,Accept");
response.addHeader("Access-Control-Max-Age", "120");
github:
gitee:
。。。。。持续同步更新。。。。
======================================
欢迎一起完善哦^^
thanks:
Howieair的小猪图标
zhangkaitao的跟我学shiro
网络上前辈们的教程文章开源项目
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。