- 博客(49)
- 资源 (13)
- 收藏
- 关注
原创 spring-security 记录笔记04 修改用户权限
我们经常会遇到这样的场景,动态权限的调整,例如张三是个部门主管,本身没有删除员工资料这个权限,但是上级比较信任张三,就想将这个功能交给张三去做。我们首先使用张三登录(xsc001):我们看后台打印出来的张三的角色权限未:当前角色未SALE_ADMIN,权限未新增和修改这时候我们需要给他新增员工删除的权限,这里有个问题是,不管直接修改数据库还是使用代码给他新增这些权限和角色,如果张三已经是登录状态的话,需要退出系统重新登录才会加载最新权限(因为张三已经登录了,spring security缓存中加
2021-06-04 11:03:33 713 3
原创 spring security配合jjwt权限管理03测试
前边写完了所有代码现在我们测试注意:我们的权限配置为:.antMatchers("/userLogin").anonymous().antMatchers(HttpMethod.GET,"/*.html").permitAll().antMatchers("/sayHello").hasAnyAuthority(“user:add”).antMatchers("/del").hasAnyAuthority(“user:del”).antMatchers("/admin/say").hasRole
2021-05-27 11:40:28 352
原创 spring security配合jjwt完成权限管理02
上一篇做好基础操作之后现在开始做最终开发,首先完成登录位置:登录板块首先关注AuthenticationProvider类,spring security用户认证主要是通过AuthenticationManager这个类完成的,但是但是真正进行认证的是 AuthenticationManager 中定义的 AuthenticationProvider,所以我们要使用jwt配合security而又不通过security默认登录来做登录的时候,就需用户自己来完成认证工作了import org.spring
2021-05-27 10:56:00 309
原创 spring security配合jjwt完成权限管理01
项目需要需要使用jwt token来完成用户状态管理以及使用spring security完成用户权限管理,所以需要将二者配合使用基础思路:1:spring security关闭自带的session管理,不需要服务器错处用户信息2:登录时调用security的用户认证模块3:security认证成功后通过jwt生成token返回给客户,并且在token中存储其他信息(例如权限信息,也可以存储在redis中)4:用户操作时通过jwt确认用户是否登录状态(token验证)、获取token携带的权限信息
2021-05-27 10:21:35 430 3
原创 RabbitMQ 03 在spring boot中基础操作
1:在spring boot 项目中引入Rabbit 的引用 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>2:配置spring boot yml文件用于连接amqspring:
2021-03-16 15:09:20 86
原创 RabbitMQ 02 基础概念
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。备注:消息队列的大体流程为以下:发布者(Publisher)发布消息(Message),经由交换机(Exchange)。交换机根据路由规则将收到的消息分发给与该交换机绑定的队列(Queue)。最后 AMQP 代理会将消息投递给订阅了此队列的消费者,或者消费者按照需求自行获
2021-03-12 14:57:15 84
原创 rabbit mq 安装
1:rabbit mq 依赖erlang,所以首先要安装erlang(我们需要安装rabbitmq-server-3.7.15-1.el7)首先输入下边的命令:vim /etc/yum.repos.d/rabbitmq-erlang.repo在里边设置erlang安装的一些东西name=rabbitmq-erlangbaseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/22/el/7gpgcheck=1gpgkey=https:/
2021-03-12 09:45:09 202
原创 spring-security 记录笔记03 数据库
现有配置如下:@Overrideprotected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/sayHello").hasRole("ADMIN") .antMatchers("/say").hasAnyAuthority("user:read") .antMatchers("/ad
2021-01-06 10:06:29 120
原创 spring-security 记录笔记02
配置中之前我们写了关于密码模块是这样的:@BeanPasswordEncoder PasswordEncoder(){ return NoOpPasswordEncoder.getInstance();}这里配置不使用密码Encode策略,但是存储的密码要是明文显示的就非常危险,数据库泄露就什么都没了,我们这里需要配置下策略1:MD5加密,这种加密方式随便搜索一下到处有(缺点:黑客搞出了一个交彩虹表的东西,所以现在MD5已经变成了伪不可加密)2:Bcrypt加密,这种加密方式每次计算
2020-12-07 16:26:45 105 2
原创 spring-security记录笔记01
操作1:在pom中引入spring-security得支持 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>什么都不做,现在启动系统会看到如下提示:Using generated
2020-12-05 14:53:51 93
原创 spring boot 微信小程序支付SDK版本 微信支付统一下单
项目要求需要在小程序中添加微信支付的功能(微信小程序就不要想支付宝的事情了),折腾了半天,也在网上看了各位先行者的各种文章(强烈谴责一下摘取别人文章一半,当作自己文章的人,越看越头疼),记录一下这次的实验1:登录微信商户首页,完成微信商户的注册这个需要公司的一些材料(营业执照,法人,银行卡之类的),这一步是必须的,你要做微信支付,最起码得开通别人的服务才行点击产品中心-查看我的产品 这里能看到所有产品,找到你需要的就可以了,我这边只是做小程序的支付,默认开通的就够用2:关联你的微信程序和微信商户号
2020-07-04 17:14:49 2792
原创 go语言中文网——一个连退出登录都需要充值权限的网站
go语言中文网,对,就是这个网站,简直了,以前学go的时候还偶尔上去看看有没有能拿来就用的好东西,然后今天想着白嫖这么久,注册一个他们的会员吧,注册完毕,正常登录(感觉为互联网又做了一份贡献),然后去忙别的事情的时候顺手退出登录,然后出现了以下的场景我整个人震惊了一发,然后,多点了几次,发现依然如此(就在我写到这一行的时候又去点击了一次,发现我还是没有权限退出登录,除非充值…)本着友好的原则,我想向管理员这边反馈下问题,结果没有任何反馈入口(或许是我没找到,管他呢)然后想着,算了,要不发布个文章提醒
2020-06-22 14:11:56 829
原创 golang爬虫colly 发送post请求
继续还是工作中使用colly,不管是官网,还是网上的一些文章(其实90%就是把官网的案例抄过去),都是一样的格式,没有讲到post,测试了几次,记录一下post的使用 c := colly.NewCollector() type data struct { Phone string `json:"phone" binding:"required"` } d:=&data{ Phone:"18190897361", } da,err:=json.Marshal(d) if er
2020-06-22 13:53:46 2919 1
原创 golang爬虫colly 抓取豆瓣前250电影
工作中要用到一点爬虫相关的,以前都是用python写的,最近研究golang(主要是工作中一些API需要用golang),才在研究,后续研究完了有可能写个整的文章,这次用colly爬去豆瓣电影 TOP250(好像所有爬虫入门都是用这个网站,感谢豆瓣),简单记录代码如下,主要使用了colly和goqueryfunc TestColly(t *testing.T){ type data struct { Title string `json:"title"` Other string `json:"
2020-06-19 17:24:13 533
原创 docker学习笔记03-数据卷
docker 容器在停止运行后将删除用户所存在的一切痕迹,也就是说你在服务器所保留的所有产生的数据将会消除痕迹,什么mysql、redis将不保留任何数据,所以这个时候我们希望将用户数据保留下来,就需要用到docker中一个非常重要的概念——数据卷数据卷是一个可供一个或多个容器使用的特殊目录, 它绕过 UFS, 可以提供很多有用的特性:数据卷可以在容器之间共享和重用对数据卷的修改会立马生效对数据卷的更新, 不会影响镜像数据卷默认会一直存在, 即使容器被删除其实当我们安装完docker的时候
2020-06-11 11:52:01 205
原创 docker学习笔记02
安装完毕docker后我们就可以去使用docker了,使用的第一步:镜像镜像是 Docker 的三大组件之一(必要),Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在本地, Docker 会从镜像仓库下载( 默认是 Docker Hub 公共注册服务器中的仓库) 。docker官方提供镜像的位置是Docker Hub,我们可以在这里找到我们所需要的镜像,并且下载到本地来使用,我们使用第一条命令docker pull --help得到结果:这里就提示了这条命令的Usage-规定格
2020-06-04 16:05:53 118
原创 spring cloud 入门13-Eureka网关——zuul01
新建项目,添加zuul组件在pom文件中添加的组件表示为 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <depe
2020-06-04 15:55:29 253
原创 docker学习笔记01
Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目它 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的cgroup, namespace, 以及 AUFS 类的 Union FS 等技术对
2020-06-02 15:06:49 215
原创 spring cloud 入门12-Eureka断路器——Hystrix
在我们的cloud中,各个节点之间相互配合、互相支持,大家齐心协力完成工作,但是天佑不测风云,可能存在某一个微服务的某个时刻压力变大导致服务缓慢,甚至出现故障,导致服务不能响应,例如:我们的网站推出新的营销方案,注册即得200元现金,这个时候注册这个节点出现压力过大,服务响应速度变缓,进入瘫痪状态。而这个时候产品微服务响应还是正常响应。但是如果出现产品微服务大量调用用户微服务,就会出现大量的等待,如果还是持续地调用,则会造成大量请求的积压,导致产品微服务最终也不可用总结来说:如果一个服务不可用,而其他微
2020-05-29 15:04:35 163
原创 spring cloud 入门11-Eureka服务节点之间的调用—Feign
我们在使用spring cloud ribbon的时候已经使用RestTemplate完成了多服务节点之间的相互调用,而RestTemplate已经实现了对HTTP请求的封装处理,形成了一套模板化的调用方法,但是在实际开发过程中对于微服务的依赖不止一处,往往一个接口被多处调用使用RestTemplate并非那么友好。因为除了要编写URL,还需要注意这些参数的组装和结果的返回等操作。为了克服这些不友好,除了Ribbon外,Spring Cloud还提供了声明式调用组件——Feign。Feign是一个基于接
2020-05-14 10:40:00 579
原创 spring cloud 入门10—RestTemplate详解
RestTemplate详解一:get之前实验中我们已经使用过RestTemplate去实现服务访问了,我们现在可以仔细研究下这个对象针对几种不同请求类型和参数类型的服务调用实现依旧是我们刚才的实验,参与者有 Eureka Server(服务注册中心),product(服务调用者)、user(服务提供者)启动服务如上现在product中调用服务提供者的代码如下:访问结果:这里我...
2020-05-13 14:25:31 299
原创 spring cloud 入门9—Eureka服务节点之间的调用—Ribbon的使用02
Eureka服务节点之间的调用—Ribbon的使用02我们基础创建一个user服务节点,完成user节点的高可用,和user1节点提供的服务是一模一样的,用以达到以下的效果这样product节点在访问过程中如果user1节点出现断线或其他问题,可以快速访问user2节点,以及多user节点会形成一个集群,减缓服务压力我们配置user2如下:注意:spring.application....
2020-05-07 09:58:57 195
原创 spring cloud 入门8—Eureka服务节点之间的调用—Ribbon的使用01
Eureka服务节点之间的调用经过前边的调试,现在我们Eureka注册中心(bigsoft-server)和Eureka服务(bigsoft-product)已经配置完毕,我们之所以使用Eureka微服务做分布式操作,就是为了多节点之间相互调用,将复杂的工作分布到不同的计算机上去操作,那么现在我们就做多服务节点之间调用的操作首先配置bigsoft-user节点,其实和product节点配置非常...
2020-05-06 15:45:51 307
原创 spring cloud 入门7—Eureka多服务节点
Eureka多服务节点我们在将注册中心完成高可用多注册中心之后,我们需要做的就是防止某个服务节点在服务过程中发生问题,同样的我们可以将单一服务节点分布到多个个计算机上,形成多服务节点例如product微服务,分别部署在47.105.4.33和47.105.4.34两个服务器上,当47.105.4.33服务器因为本身或者网络故障导致不可提供服务时暂时由47.105.4.34对外提供服务,这样就完...
2020-04-30 14:01:58 473
原创 spring cloud 入门6—Eureka高可用2
Eureka高可用2在完成Eureka注册中心高可用(多注册中心)之后,我们回顾下之前的配置是这样:
2020-04-30 11:03:27 169
原创 spring cloud 入门5—Eureka高可用
Eureka高可用我们通过前边的工作已经完成了Eureka注册中心的部署以及Eureka服务注册,现在进入下一步重要的步骤——保证服务的高可用性Eureka官网解释如下:Eureka can be made even more resilient and available by running multiple instances and asking them to register ...
2020-04-29 15:04:06 216
原创 spring cloud 入门4—Eureka服务注册
Eureka服务注册我们现在已经将Eureka注册中心搭建完毕,现在我们开始完成Eureka的服务注册,毕竟仅仅只有一个Eureka的注册中心是没有意义的首先我们创建一个bigsoft-product的服务向Eureka注册中心,创建工程的时候,因为要使用Eureka-clienth所以在添加了web的插件后还需要引入Eureka Discovery client自动创建工程会帮我们生产我...
2020-04-29 11:06:49 150
原创 spring cloud 入门3—Eureka自我保护机制
Eureka自我保护机制我们在使用Eureka的时候(尤其是做实验测试的时候)经常会看到Eureka界面冒出来这样一段红色的警示语句中文翻译如下:紧急情况!尤里卡可能不正确地声称实例在不在的情况下出现。续订小于阈值,因此不会为了安全而过期实例。出现这种情况的解释说明是:当前Eureka进入了自我保护模式其中官方解释是这样的:自我保护模式正是一种针对网络异常波动的安全保护措施,使...
2020-04-28 11:13:39 533
原创 spring cloud 入门2—Eureka服务治理中心搭建以及Eureka界面介绍
2:Eureka服务治理中心一:创建项目我们首先创建spring cloud的服务治理中心,在创建界面选择添加的组件为:Eureka-Server以及spring Web创建好的工程结构:下边是整体pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/P...
2020-04-27 16:29:17 799
原创 spring cloud 入门1—Eureka入门
1:EurekaSpring Cloud 入门首先要了解Eureka一:是什么Eureka是Netflix开发的服务发现框架基于REST的服务在Spring Cloud主要提供服务治理和服务发现服务集成了众多开源的框架,利用Spring Boot的开发实现了服务治理、服务注册与发现、负载均衡、数据监控,REST API发布方式等涵盖了分布式框架所需要的所有功能二:怎么用1:...
2020-04-27 14:20:17 122
原创 spring boot模块化开发中junit测试
spring boot 在开发过程中,由于人员/项目结构的原因,我们越来越多的会选择分模块去开发其中最简单的模块结构例如将一个工程中的model\dao\service\web由原来的多个包分成各个不同的工程,由不同的程序员负责单一工程(例如张三只负责dao相关操作,负责把sql相关操作做的精益求精,而不用去管web层与用户的交互过程),这样我们最终将多个工程整合成同一个工程就可以比较快速的完成...
2020-01-07 13:37:50 872 1
原创 spring security中自定义AccessDeniedHandler不生效的实验记录
首先编写自定的AccessDeniedHandler,代码如下:public class MyAccessDeniedHandler implements AccessDeniedHandler{ @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDe...
2020-01-06 19:50:00 9686 3
原创 spring mvc参数接受的各种方式
spring mvc在和前端交互过程中,最重要的任务之一就是和前端交互,交互过程中我们不可避免的需要接受用户在前端需要传递给后端的参数,那我们总结一下各种接受前端参数的方式1:通过前端URL地址栏中的参数接受(restful风格接收主要用到)/** * 通过路径接受 * * @param name * @return * @throws Exception */ @...
2019-06-21 10:19:08 179
原创 spring mvc 利用@ExceptionHandler进行全局异常处理
在完成spring mvc 项目过程中 异常是一个不可避免的需要处理的重点例如:1):用户正在访问我们的网站,数据库服务器挂掉了,这时候肯定会产生在调用数据库过程中连接所产生的异常2):后端程序员的一个失误没有考虑到某些特定情况下产生null数据而引发的空指针异常那怎么解决这个问题呢?方案1:try { msg=userService.addUser(user); }catc...
2019-06-21 09:41:00 1929
原创 spring mvc 参数接收Date类型
时间类型在我们的项目中经常会遇到,最笨的办法就是先用字符串接受时间戳,然后再转为java中的Date类型那怎么能更优雅的解决这个问题呢?spring 其实已经为我们做出了很方便的处理// 获取提交参数 @PostMapping("/format/date") @ResponseBody public Map<String, Object> format(Date date,...
2019-06-20 15:53:34 2379
原创 spring mvc +mybatis redis缓存
缓存在一个系统是非常有必要的,最简单的说法:当你查看一个用户信息的时候(例如查看个人资料),当频繁去查询(同一个用户资料)的时候,每次都去数据库查询的话这个查询是非常没必要的。最好的做法就是第一次去数据库查询,查询结果集我们进行缓存,下一次/下几次查询的时候直接从以前查询出来的结果获取所需要的值,这样减少数据库查询对我们系统优化是非常大的(假设查询一次需要0.01秒,当很多人一起查询的时候这个数...
2019-06-20 10:40:33 171
原创 最简单的适配器模式
适配器模式:经典的入门模式,顾名思义,最主要的目的是达到适配(网上结构图很多,自己找一下,懒得放进来)1:什么是适配?为什么需要适配?1)生活中的案例case 1:美国的电压标准为110V,而国内是220V。在美国买一个家用电器,在国内不能正常使用,电压不同电器会受到损害。怎么办呢?收购一个适配器,适配器连接中国电源,美国电器再连接适配器,这样就可以正常使用了case 2:床头只安装了三相...
2019-06-20 09:53:58 196
原创 spring mvc+mybatis自动将枚举类映射到数据库
在完成spring mvc 项目过程中,我们经常会遇到将枚举类存储到数据库的操作,例如,性别:我们一般在数据库存储据0和1代表性别,但是我们在页面选择的时候却需要显示为男性和女性我们首先定义一个性别的枚举类package com.action.myboot.pojo;//性别枚举类public enum SexEnum { MALE(1, "男"), FEMALE(2,...
2019-06-18 13:39:15 1209 1
原创 java位运算大全
package com.wode;/**java位运算大全*/public class Demo {public static void main(String[] args) {System.out.println("&与运算开始");System.out.println(0&0);System.out.println(1&0);System.out....
2019-06-18 11:21:37 313
原创 spring mvc+mybatis 通过resultType 获取为空
当使用mybatis查询对象的时候,如下:<select id="getInfoUser" resultType="infoUser" > select info_id,user_name ,user_pwd,user_gender from infouser where info_id=#{infoId} </select>我们没有使用 resultM...
2019-06-18 10:42:24 537
spring boot+websocket
2020-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人