介绍: Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码学和会话管理.使用Shiro的易于理解的API,您可以快速.轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序.(摘自百度百科) 本文使用springboot+mybatisplus+shiro实现数据库动态的管理用户.角色.权限管理,在本文的最后我会提供源码的下载地址,想看到效果的小伙伴可以直接下载运行就ok了 因为shiro的功能比较多,本章只介绍如下几个功能 1.当用户没有登陆时…
主要记录关键和有坑的地方 前提: 1.SpringBoot+shiro已经集成完毕,如果没有集成,先查阅之前的Springboot2.0 集成shiro权限管理 2.redis已经安装完成 3.redis客户端使用Lettuce,这也是sprinboot2.0后默认的,与jedis的区别,自行百度 4.json使用springboot默认的 一.依赖 <dependency> <groupId>org.springframework.boot</groupId> <…
一.概述 本博客主要讲解spring boot整合Apache的shiro框架,实现基于角色的安全访问控制或者基于权限的访问安全控制,其中还使用到分布式缓存redis进行用户认证信息的缓存,减少数据库查询的开销.Apache shiro与spring security的作用几乎一样都是简化了Java程序的权限控制开发. 二.项目 2.1首先是通过eclipse创建一个最新的spring boot项目,并添加以下依赖: pom.xml 复制<?xml version="1.0" e…
相关教程: 1. springboot+shiro整合教程 2. springboot+shiro+redis(单机redis版)整合教程 3.springboot+shiro+redis(单机redis版)整合教程-续(添加动态角色权限控制) 本教程整合环境: java8 maven redis(集群) 开发工具: idea 版本: springboot 1.5.15.RELEASE 注: 1.本教程数据操作是模拟数据库操作,并没有真正进行持久化,自行修改即可. 2.角色权限验证未实现,只实现…
相关教程: 1. springboot+shiro整合教程 2. springboot+shiro+redis(集群redis版)整合教程 3.springboot+shiro+redis(单机redis版)整合教程-续(添加动态角色权限控制) 本教程整合环境: java8 maven redis(单机) 开发工具: idea 版本: springboot 1.5.15.RELEASE 注: 1.本教程数据操作是模拟数据库操作,并没有真正进行持久化,自行修改即可. 2.角色权限验证未实现,只实现…
SpringBoot2.0+Shiro+JWT 整合 JSON Web Token(JWT)是一个非常轻巧的规范.这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息. 我们利用一定的编码生成 Token,并在 Token 中加入一些非敏感信息,将其传递. 安装环境 开发工具:STS Maven版本:apache-maven-3.5.2 java jdk 1.8 MySQL版本:5.7 系统:Windows10 一.新建Maven项目 配置Maven项目的pom.xml文件 <pr…
相关教程: 1. springboot+shiro整合教程 2. springboot+shiro+redis(单机redis版)整合教程 3. springboot+shiro+redis(集群redis版)整合教程 参考此教程前请先阅读 2.springboot+shiro+redis(单机redis版)整合教程,此教程是在其基础上进行修改添加动态角色权限的. 本教程整合环境: java8 maven redis(单机) 开发工具: idea 版本: springboot 1.5.15.RE…
前言:前两篇文章.net core+Redis+IIS+nginx实现Session共享中,介绍了使用Microsoft.Extensions.Caching.Redis实现Session共享的方法,但是高并发时会有连接Redis出现Timeout的问题,这篇文章将介绍该问题的解决方案. 1.环境及工具准备 操作系统:windows10 数据库:Redis 压力测试工具:JMeter(传送门) 2.背景介绍 项目迁移到.net core并上线以后,运行没多久接口就频繁罢工,容器没有挂,redis…
Springboot2.x集成Redis集群模式 说明 Redis集群模式是Redis高可用方案的一种实现方式,通过集群模式可以实现Redis数据多处存储,以及自动的故障转移.如果想了解更多集群模式的相关知识介绍,欢迎往上爬楼. 准备条件 pom.xml中引入相关jar <!-- 集成Redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr…
Springboot2.x集成Redis哨兵模式 说明 Redis哨兵模式是Redis高可用方案的一种实现方式,通过哨兵来自动实现故障转移,从而保证高可用. 准备条件 pom.xml中引入相关jar <!-- 集成Redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</arti…
一.简介 spring boot框架中已经集成了redis,在1.x.x的版本时默认使用的jedis客户端,现在是2.x.x版本默认使用的lettuce客户端,两种客户端的区别如下 # Jedis和Lettuce都是Redis Client # Jedis 是直连模式,在多个线程间共享一个 Jedis 实例时是线程不安全的,# 如果想要在多线程环境下使用 Jedis,需要使用连接池,# 每个线程都去拿自己的 Jedis 实例,当连接数量增多时,物理连接成本就较高了. # Lettuce的连接是基…
开始 首先,确保之前已经安装过 npm 和 nodejs(为了避免版本的问题,最好使用较新的版本). 全局安装 vue-cli : npm install -g vue-cli 新建文件夹 my-project ,进入命令行,利用 cd 命令导航至该文件夹(或者在文件夹内空白处 ctrl + shift + 鼠标右键 点击 '在此处打开命令行' ), 初始化项目: vue init webpack 设置配置信息: 配置信息比较直观,这里选择安装了 vue-router, 也可以配置完成后再安装依…
Shiro与Springboot整合下登陆验证UserService未注入的问题 前言: 刚开始整合的情况下,UserService一执行,就会报空指针异常. 看了网上各位大神的讲解,什么不能用service层,直接用dao层获取...... 然后跟着一路再坑....... 最后的最后,才发现MyRealm类未被加载成bean. 解决办法: package com.xm.zeronews.config; import java.util.LinkedHashMap; import java.ut…
spring boot框架中已经集成了redis,在1.x.x的版本时默认使用的jedis客户端,现在是2.x.x版本默认使用的lettuce客户端 引入依赖 <!-- spring boot redis 缓存引入 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactI…
springboot下用cache注解整合redis并使用json序列化反序列化. cache注解整合redis 最近发现spring的注解用起来真的是很方便.随即产生了能不能吧spring注解使用redis实现的方式. 只需要在配置文件中(application.propertoes)添加如下一个配置 spring.cache.type=redis 并配置好redis的相关信息 spring.redis.database=0 spring.redis.host= spring.redis.po…
一.Springboot2.x关于配置redis作为缓存. 基本配置如下: (1)在application.properties文件中 spring.redis.database=2 //第几个数据库,由于redis中数据库不止一个 spring.redis.host=localhost // 也可指定为127.0.0.1 spring.redis.port=6379 // 默认端口 spring.redis.password= // 默认为空 # springboot2.x以上如此配置,由于2…
当我们放下一个项目转投下一个时,手头的东西就要转交给他人处理,或者..不再有人处理,可代码还在那里,搞不好你就引用了别人的东西,保不准哪天别人的代码里就爆出了个大 bug,当然这里的“别人”也可能是 你!我们既不希望自己是受害者,更不希望自己是施害者.   写代码不免出点bug,没有人可以保证自己写的代码不出问题,而那些没有被挖掘出来的bug,便成了后来者哭笑不得的坑... 这段时间公司全面 https 改造,涉及到域名的迁移,域名的迁移不是 nginx 做个映射就完事儿了,还有各种代码的去 s…
Spark踩坑填坑-聚合函数-序列化异常 一.Spark聚合函数特殊场景 二.spark sql group by 三.Spark Caused by: java.io.NotSerializableException 序列化异常踩过的坑 序列异常天坑1(网上常见的) 序列异常天坑2 序列异常天坑3 四.org.apache.spark.SparkException: Task not serializable 部分内容原文地址: AISeekOnline:Spark Caused by: ja…
接触微信支付之前听说过这是一个坑,,,心里已经有了准备...我以为我没准跳坑出不来了,没有想到我填上了,调用成功之后我感觉公司所有的同事都是漂亮的,隔着北京的大雾霾我仿佛看见了太阳~~~好了,装逼结束...进入正题 开发准备: 1.在微信开放平台申请账号 2.成功后创建应用,就是填一些看似很官方很正经的资料了...(说审核7天左右,没有意外的情况下你的app第二天就审核成功了是不是很开心,有了appid,是不是就可以调用微   信支付了????-------想多了,真的) 3.微信支付是需要额外…
以下是常用的代码收集,没有任何技术含量,只是填坑的积累.转载请注明出处,谢谢. 因为提交比较麻烦,后来转置github:https://github.com/jsfront/src/blob/master/css.md 一. css 2.x code 1. 文字换行 /*强制不换行*/ white-space:nowrap; /*自动换行*/ word-wrap: break-word; word-break: normal; /*强制英文单词断行*/ word-break:break-all;…
近日西安的天气很不错,可是看到从其他地方迁移来的主机在新环境下无法远程调试怪郁闷的,这就需要填坑,要不就会给后来者挖更大的坑. 今天遇到的坑是在IPMI的网络设置里面启用了VLAN标签之后,在新环境下IPMI直接失灵的问题. 由于时间原因,当时迁移的时候直接就断电了,很中国的理念是不——就是要快,先不看结果. 原有的环境是vSphere ESXi 4.1的操作系统,配置好IP之后可以通过vSphere Client去管理他,服务器是Supermicro的. 传统方式解决此问题需要还原出一个原有的…
这篇就先暂停下上篇博客--你画我猜的进度,因为在做这个游戏的时候,想采用最新的ng2技术,奈何坑是一片又一片,这边就先介绍下环境部署和填坑史 既然要用ng2,首先要拿到资源,我这边用的是angularJs2 beta版的,网上的资源有两种,一个是文件全压缩版的.min.js版的另一个就是一大堆乱七八糟的js文件,主要是ng2已经完全采用TypeScript,加之对es6的支持,所以需要引入一大堆兼容,编译文件 这边刚好特别手欠想学学gulp,于是开搞配置gulp环境,压缩所有的js文件成一个mi…
一个已有的Struts+Spring+Hibernate项目,以前使用MySQL数据库,现在想把Redis也整合进去. 1. 相关Jar文件 下载并导入以下3个Jar文件: commons-pool2-2.4.2.jar.jedis-2.3.1.jar.spring-data-redis-1.3.4.RELEASE.jar. 2. Redis配置文件 在src文件夹下面新建一个redis.properties文件,设置连接Redis的一些属性. redis.host=127.0.0.1 redi…
Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的时候,会开放思路.当然不得不说,Ons的.NET接口还很不完善,甚至没有独立在Windos 2008/2012服务器测试过,希望官方加把力. 1.阿里云ONS介绍 ONS(Open Notification Service)即开放消息服务,是基于阿里开源消息中间件MetaQ(RocketMQ)打造的…
这题是学主席树的时候就想写的,,, 但是当时没写(懒) 现在来填坑 = =日常调半天lca(考虑以后背板) 主席树还是蛮好写的,但是代码出现重复,不太好,导致调试的时候心里没底(虽然事实证明主席树部分没出问题) #include <cstdio> #include <algorithm> using namespace std; ]; ]; ,N=,lastans=; ],nex[],list[]; ],h[],fir[],root[],f[],pos[]; ],near[],rm…
没有什么高深的东西,1 2天的时间大多数人都能自己摸索出来,这里将自己遇到过的问题分享出来避免其他同学再一次挖坑. 目录 1. 主从节点 2. Nuget自动包还原 3. powershell部署 4. 内网机器实现基于变化的构建 5. Github私有项目pull时限 所谓主从,主要应用的场景例如多种环境(windows/linux,.net/java/php)需要不同的构建基础,而我们又不想都将一系列的步骤和环境混杂在一台构建服务器上,所以类似于go中的代理,jenkins也提供了slave…
应公司需求,改版公司ERP的数据显示样式.由于前期开发的样式是bootstrap,所以选bootstrap-table理所当然(也是因为看了bootstrap-table官网的example功能强大,样式清爽). 然后... ... 开启bootstrap-table填坑之旅. 开始就扒本园的资源,确实有不少bootstrap-table的文章.确实写的不错很详细,请恕本菜实在菜了点,看了半天demo的页面都没弄出来(勿吐槽~~).终于11点了.. .. 于是决定跟着官网的小白教程一点点的玩.…
填坑*** WARNING L15: MULTIPLE CALL TO SEGMENT 警告:发生了重入! 解释:在主循环里调用了一个函数,而在中断服务中又一次调用了同样的函数.当主循环运行到该函数中时,一旦产生中断,则在中断里又再次调用该函数,使得该子函数发生了重入.这时,尽管概率很低,但是很可能出错!这样,编译器就给出了警告-发生了重入! 可能引起程序冲突,假设你用于自动化领域,则可能导致信号产生尖峰.避免这种情况的方法:在进中断的时候置需调用该函数的标志,而在主循环中调用该函数. 一.用r…
Stateless component也叫无状态组件.有三种方法可以创建无状态组件. 坑 一般一个组件是怎么定义的: 很久以前的方法: const Heading = createClass({ render() { return <Text>{this.props.title}</Text> } }) 后来有了ES6 class Heading extends Component { render() { return <Text>{this.props.title}…
终于开始新一篇的填坑之旅了.RN厉害的一个地方就是RN可以和Native组件通信.这个Native组件包括native的库和自定义视图,我们今天主要设计的内容是native库方面的只是.自定义视图的使用会在后面讲到. 坑是什么样的坑 主要的是遇到一个业务需求,需要检测当前应用的版本是什么.需要返回当前的版本号和build数. 主要的需求在native来说非常简单: NSString * version = [[NSBundle mainBundle] objectForInfoDictionar…