自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(177)
  • 收藏
  • 关注

原创 《OAuth2实战》传统认证方式的问题

假如一个打印服务需要调用照片服务才能获取用户照片打印,打印服务是第三方服务。照片服务受保护不能随便访问,打印服务调用的时候需要弹出一个页面让用户输入照片服务上的用户名和密码才能获取照片。这样的缺点很明显,第一 用户的密码泄露给了打印服务,打印服务可以自己访问照片而不是在用户的许可之下访问照片 第二,用户在别的系统中的密码有可能和照片服务密码一样,这样会导致别的服务密码也泄露 第三,打印服务有了密码可以访问照片服务所有功能,比如删照片,这样无法确保用户信息安全 第四,无法随时撤销打印服务的访问,如果要撤销就只

2022-05-17 18:34:43 175

原创 《Oauth2实战》四种许可模式比较

资源拥有者许可机制 用户输入用户名和密码去获取token这种许可机制就是我们平时最常见的登录页面,输入用户名和密码或者手机号验证码。密码虽然被讨厌,但是有时候也不得不去使用密码。一个系统可不可以只用微信或者支付宝登录,不用手机号和密码呢?...

2022-04-23 13:27:02 370

原创 《Oauth2实战》获取token可以不需要客户端身份认证吗?

code值通过后端信道和clientSecrect一起使用,获取token。这里的客户端密匙起到了什么作用?为什么一定要这个呢?code值在前端,我们假设它一定会泄露。那么攻击者拿到这个code,没有clientSecrect获取不到token。因此微信的授权中心还是需要对客户端身份做认证的,防止别人code泄露导致攻击者直接获取token。攻击者可以使用我们系统的后端信道,带着code值访问我们后台接口,我们后台接口保存了clientSecrect,它直接访问微信获取token和用户信息,然后给攻

2022-04-20 21:45:37 733

原创 《Oauth实战》登录接口防护

上次说到前端会对传来的code有state验证,只获取state正确的code,因为state正确才说明是微信传来的code,不是第三方传来的code。前端拿到code之后会把code给后台,后台去找微信要token。那么在用户未登录的情况下这个后台接口是开发的,没有token保护,任何人都能访问。攻击者可以直接绕开前端,直接给后台发一个假的code,让后台去访问微信。这样造成了后台资源的浪费甚至服务器瘫痪,或者让攻击者蒙到了一个token造成信息泄露。那么后台在未登录的情况下是无法判断调用者是我们

2022-04-20 20:53:26 228

原创 《oauth2实战》code值的防护

我们之前说过前端不能直接拿token,会泄露。因此给前端一个code值,code的保护做好了就是code被泄露,也不会导致token被泄露。 那么code怎么做保护呢? 第一,前端必须接受指定应用的code,不能乱接受code。以微信登录举例子,这个code必须是微信给的,不能是别的不知名的第三方给的,不能随便一个人给你code你都要。 那就需要验证微信的身份了,怎么验证呢?第一次重定向到微信的时候带上一个state。微信得到这个state回调前端的时候把这个state带回来...

2022-04-20 12:36:54 640

原创 《oauth2实战》code值的作用

博主对oauth2授权流程感兴趣,上面的内容和思考都是来自于本书

2022-04-20 11:42:21 1292 4

原创 springboot+mybatis+aop+注解实现数据权限

数据权限就是决定让某些人看到某个范围的数据,比如管理员看到所有学生成绩,学生本人看到自己的成绩。我们写业务sql 的时候容易忽略到数据权限的问题,因此把他做成aop加上注解 的形式,自动在我们写的sql后面拼接一下新的过滤条件,来起到自动过滤的作用。过滤条件可以是id in (....) 或者 是 (select * from * ....)实现思路是,写一个注解类,用来传值,写一个aop切面类,读取注解的值。然后从数据库中取出当前用户相关权限,用string拼接sql。将拼接的sql...

2021-05-13 17:30:59 2026

原创 mybatis数据权限的坑

mybatis数据权限简单思路如下,希望某个角色拥有某个数据权限,比如admin用户可以查看所有部门数据,普通用户只能查看自己部门数据,这就要在sql中根据部门id去筛选。但是又不想所有方法都要手动筛选,容易出错,也很麻烦,所以计划动态拼接sql,在每行sql后面拼接一个部门id in (....),起到一个自动过滤的作用。思路如下:写一个注解接口作为动态传参,写一个apo来使用注解参数,查询这个用户的角色,看到角色配置的数据权限,是所有部门还是只能看到自己部门信息。将sql拼接的信息带入.

2021-05-13 00:46:08 619 1

原创 request设置session的误解

以前以为session需要设置在response里面,返回给浏览器,然后浏览器拿到这个session传给后台进行检验,并获取session里面的值。后来发现不是的,session是在request里面设置的,然后浏览器会自动获取到,然后根据这个sessionId判断用户是否登录,同时验证登录着角色和权限等。也就是说根本不用往response里面设置任何session,设置了浏览器也没有办法获取session。...

2021-05-05 17:07:00 712

原创 多层json解析根据层级生成id

无限级json数组动态根据层级生成id,先贴出原始数据{ "project_name": "项目名称", "project_remark": "test", "Project_tree_node": [ { "label": "造价入口", "children": [ { "label": "变更" },

2021-05-04 08:39:09 589

原创 zipkin日志采样率问题反思

zikpin日志采样率设置为0.1,就是10次只能有一次被记录下来。当时看到这个问题很郁闷,那9次的请求咋办,日志不完整怎么排查错误呢?后来才明白,日志其实是完整的,日志可以用logback收集并保存成文件。所有的请求信息 都会被这个文件所记录,只是zikpin侧重于链路追踪,并不是排查错误,更多的是我们知道服务直接调用耗时和服务直接依赖关系而已。所以不需要完整日志,只需要0.1比例就够了。而sleuth: sampler: probability: 0.1这个采样其实只是对zip

2021-04-21 17:14:15 757

原创 浮动元素

浮动定位:将元素排除在普通流之外元素将不在页面中占据空间将浮动元素放在包含框的左边或右边浮动元素依旧位于包含框之内浮动的框可以向左或向右移动,直到他的边缘碰到另一个浮动的框或者他的包含框为止浮动元素的外边缘不会超过其父元素的内边缘浮动元素不会相互重叠浮动元素不会上下浮动任何元素一旦浮动,display属性将完全失效,可以设置宽高,并不会独占一行float: none/left/right...

2020-08-17 23:50:37 329

原创 css层模型,定位

1.position:absolute 脱离原来位置定位一个元素成了absolute之后,就脱离了原来的层,跑到上一层去了,这样下面的元素会上去,被这个元素所覆盖,或者覆盖一部分相对于最近的有定位的父级进行定位,如果父级没有定位,相对于祖父级定位,都没有相对于文档定位2.position:relative 保留原来位置定位相对于原来的位置定位一般开发的时候,relative当做机架,最上层的div,可以不给他设置left,absolute来灵活定位3.position:...

2020-07-11 16:22:42 154

原创 css

1.名称层叠样式表,cascading style sheet2.引入css,行间样式: <div style=" "> </div>页面级css样式:<head> <style type="text/css"> 或者<style> 。。。。。。。 </style></head>外部css文件<head><link rel="s...

2020-07-09 22:21:21 120 1

原创 h5的全局属性

全局属性指,对任何元素都能使用的元素draggable = "true" 元素可以在页面被拖动hidden = "true" 元素被隐藏,页面看不到id= " " 给元素指定唯一idspellcheck 是否对元素进行拼写或语法检查style 行内样式,这也是全局属性title 规定有关元素的额外信息class 指定元素的classaccesskey="h"使元素获得焦点,可以以快捷方式访问元素 alt+"h" 此属性只能在 <a&...

2020-06-16 19:21:41 395

原创 h5系列--link标签

link标签引用外部样式表,小图标,指明网站的规范版本,申明文档作者,链接文档的搜索工具等。<link /> link可以有反斜杠,也可以不加反斜杠用法:type指定当前文档的mime类型,mime最开始用来指定发生邮件的附加内容的格式,以便于客户端处理。他被http协议支持以后就,传输的文本就不只是文本文档了,可以支持很多格式。一般type是text/css<link type="text/css" ref="stylesheet" href="*.css"/&...

2020-06-14 14:55:35 1107

原创 浏览器缓存对jsp页面造成的影响

今天遇到一个很大的坑,我的后台明明已经把css删掉了,但是页面就是没翻译。<link href="css/style.default.css" rel="stylesheet">这个link起作用,这是我百思不得解的问题。无奈之下,我点击f12之后,在network里面发现了我的css。原来是我没有删除缓存造成的问题。...

2020-01-20 22:07:30 304

原创 为什么jsp页面上面需要java代码

举个例子:action:request.setAttribute( "title", BaseAction.getProductName( request, response ));jsp:<tiles:put name="title" value="${subTitle} | ${title}" />这个效果是把request中title的值,通过el表达式取出来,...

2020-01-13 09:23:20 253

原创 集合自比较取出最小数

private void recalculateRecord( final String recordId ) throws JANException { try { int recordsDaily = 2; // 初始化RecordVO final RecordVO recordVO = ( ( Recor...

2020-01-09 10:58:51 319

原创 href用法理解

<a href="./" class="logo"> <img src="img/logo2.png"> </a>href是a标签的一个属性,用于链接一个新的请求地址, ./ 代表相对于当前的url的上一级。举个例子,http://localhost:8080/ssm1/login 点击这个图片之后 ht...

2020-01-01 20:54:03 5831

原创 如何输入一个url跳转到默认的页面

第一种方法,在webapp目录下面写好默认路径,在web.xml里面配置 <welcome> 默认的jsp/html</welcome>输入url到项目名,自然就会跳转到这个页面,这个页面一般是主页第二种方法,把页面写在webInf下面,然后在控制层 requestmapping("/"),方法上面requestmapping("/"), return ...

2020-01-01 16:39:16 883

原创 tomcat加载不了项目总结

https://blog.csdn.net/weixin_41996632/article/details/85694294

2019-12-28 17:35:19 344

原创 VM安装安卓6.0

告诉大家一个好消息,别再用垃圾模拟器了,各种白屏,卡顿。直接VM安装安卓系统,抓包不再烦恼!https://wenku.baidu.com/view/54a981e2951ea76e58fafab069dc5022aaea463b.html...

2019-12-24 20:33:18 1552

原创 安装mongodb

官方地址:https://www.mongodb.com/ 运行 mongodb-win32-x86_64-2008plus-ssl-v3.4-latest-signed.msi创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)和日志文件(mongo.log文件)mongo.conf...

2019-12-05 01:24:34 61

原创 compose下载和安装的坑

compose对docker容器集群快速编排,之前启动容器需要docker run ,每一次都是docker run,很麻烦。用户使用 docker-compose.yml 定义一组相关联的应用容器为一个项目安装前必须删除root@Ubuntu:/etc/apt/sources.list.d# rm -fr docker.list apt-get autoremove docker-ce 删...

2019-12-03 18:45:40 1341

原创 容器化运行项目

docker run -it --rm 8080:8080 -d tomcat这个运行一个空tomcat现在要把项目加载到tomcat中,运行项目docker run -it --rm 8080:8080 -v /usr/local/docker/tomcat/ROOT:/usr/local/tomcat/webapps/ROOT -d tomcat把项目...

2019-12-03 17:50:57 103

原创 docker部署数据库

docker run -p 3306:3306 --name mysql -v /usr/local/docker/mysql/logs:/var/log/mysql -v /usr/local/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ROOT -d mysql:5.7.22mysql默认一次接收sql文件大小为...

2019-12-03 16:39:12 144

原创 docker容器数据持久化

容器就相当于对象,容器被消耗,数据也会消失。我们现在想着容器消耗,数据也不被删除。这时候需要用到--------数据卷。容器写入数据,先写到ufs中,然后通过ufs写到宿主机上面。如果容器被消耗,则容器和ufs的连接被中断,那么没有容器能访问宿主机的文件了。我们创建数据卷,直接通过容器写到宿主机上面。容器被消耗,我们可以创建新的容器指定到宿主机的对应目录下的数据卷。数据库...

2019-12-03 15:48:49 428

原创 守护态运行容器

打卡一个终端docker run -p 8080:8080 tomcat:9-jre8启动一个tomcat之后,这是使用的是主线程运行。此时如果再启动一个tomcat就必须从新开一个终端,这样太麻烦因此我们有了守护态运行容器,采用异步的方式启动一个容器docker run -d -p 8080:8080 tomcat...

2019-12-03 15:11:39 127

原创 Docker启动

docker run -p 8080:8080 tomcat:9-jre8-p 用来指定端口映射 如果直接启动 docker run tomcatL9-jre8 不能访问成功,因为端口没有映射

2019-12-03 14:47:24 113

原创 Docker镜像定制

Dockerfile是docker的脚本指令,分层写,每一条指令构建一层以tomcat为例子:在/usr/local/tomcat 建立tomcat文件夹vi Dockerfile 建立文本,在里面写入docker命令即可FROM tomcat:9-jre8 指定基础镜像RUN ehco "hello docker" > /us...

2019-12-03 14:27:59 201

原创 Docker操作容器

docker run -p 8080:8080 tomcat:9-jre8 这个命令是启动容器并进入容器里面,但是不能重复使用。因为重复使用会产生多个容器。我们需要针对当前产生的容器进行修改文件,docker start 容器id,启动容器后docker exec -it 容器id bash 进入容器里面修改echo "hello worl...

2019-12-03 12:12:51 70

原创 Docker镜像

使用docker从官方仓库获取镜像https://hub.docker.com/search?q=&type=image这是官方仓库!docker pull tomcat:jre-9 tomcat是仓库的名字 jre-9是标签名字docker run 运行容器 -i交互式操作 -t终端 bash 进入容器内部里面执行命令并返回结果...

2019-12-03 09:52:00 77

原创 Docker安装

使用脚本安裝docker最新版curl -fsSL get.docker.com -o get-docker.shsh get-docker.sh --mirror ALiyun判斷是否安裝成功,此处如果没有安装成功,则看下ubuntu的版本和docker版本是否匹配docker version如果报错?root@Ubuntu:~# sh get-docker.sh --m...

2019-12-03 09:32:17 621

原创 springmvc項目創建

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4...

2019-11-26 16:05:18 61

原创 sts创建项目springboot项目

看看里面的配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http...

2019-11-26 14:07:43 340

原创 瞬间让网速快起来

C:\WINDOWS\system32\gpedit.msc右键高级Qos设置

2019-11-16 03:11:20 102

原创 mysql的安装

1.控制面板卸载2.找到安装目录删除 my.ini3.删除C盘下隐藏文件,查看,显示隐藏文件programData,进入找到mysql删除4.https://www.mysql.com/downloads/MySQL Community (GPL) Downloads »MySQL Community Server(mysql-5.5.62-winx64.msi) 安...

2019-11-16 01:35:05 71

原创 xshell连接centos7.5

注意,这里的ip 是阿里云公用ip,不是私人ip。不然连接失败

2019-11-15 15:16:00 186 1

原创 排除网络故障

ping 127.0.0.1 检查本地tcp/ip是否正常ping 默认网关 检查网关是否正常ping www.baidu.com 检查电脑与外部网络连接是否正常

2019-11-14 21:55:40 186

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除