- 博客(724)
- 资源 (9)
- 问答 (16)
- 收藏
- 关注
原创 线程状态转换
新建(New)创建后尚未启动。可运行(Runnable)可能正在运行,也可能正在等待 CPU 时间片。包含了操作系统线程状态中的 Running 和 Ready。阻塞(Blocked)等待获取一个排它锁,如果其线程释放了锁就会结束此状态。无限期等待(Waiting)等待其它线程显式地唤醒,否则不会被分配 CPU 时间片。进入方法退出方法没有设置 Timeout 参数的 Object.wait() ...
2019-04-30 22:19:44 73
原创 Shiro第三章一-授权流程
简介授权,也叫控制访问。关键对象:主体(Subject)、资源(Resource)、权限(Permission)、角色(Role)。角色:权限的集合,一般情况下我们会赋予用户角色而不是权限。Shiro支持粗粒度(角色级别访问控制)和细粒度(权限级别)权限。隐式角色:直接通过角色来验证用户有没有操作权限,粒度较粗,是以角色为单位进行访问控制的。如果有一天不允许总监这...
2019-04-30 22:15:22 120
原创 http请求与响应、URL编码、域名
http请求报文http请求信息由三部分组成请求方法 URI协议 http版本请求头(Request Header)请求正文例子:GET /sample.jsp HTTP/1.1 Accept:image/gif.image/jpeg,*/*Accept-Language:zh-cn //客户端所用的语言Connection:Keep-AliveH...
2019-04-30 22:07:10 295
原创 Springboot Aop切面处理[转载]
众所周知,spring最核心的两个功能是aop和ioc,即面向切面,控制反转。这里我们探讨一下如何使用spring aop。1.何为aop aop全称Aspect Oriented Programming,面向切面,AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之...
2019-04-30 21:24:21 165
原创 Shiro第二章二-验证者Authenticator、验证策略AuthenticationStrategy
Authenticator及AuthenticationStrategyAuthenticator的职责是验证用户,被subject的login()调用。public AuthenticationInfo authenticate(AuthenticationToken authenticationToken) throws AuthenticationExc...
2019-04-30 21:20:20 191
原创 Thymeleaf
ThymeleafSpringBoot支持前端页面使用Thymeleaf渲染,并不支持jsp。web工程项目结构如下: 在templates目录下写前端...
2019-04-30 20:51:37 91
原创 c forEach
-<c:forEach var=”pow” items=”${power }”> ${pow } </c:forEach>在作用域比如request、session里面存了power这个集合,然后这边${power }取一下就可以遍历了 ...
2019-04-30 20:28:13 107
原创 创建spring-boot项目
ps: 社区版IDEA没有spring initializr,它用的不是spring boot插件,而是spring assistant插件。插件安装过程创建方式使用sts插件/IDEA自带的插件创建(需要联网,往往失败)第一次选择create new project,选中spring assistant,project SDK即是选择jdk版本,下面的htt...
2019-04-30 19:51:58 200
原创 Shiro第十四章-SSL
简介Secure Sockets Layer,安全套接层。在传输层对网络进行加密,为网络通信安全提供安全及数据完整性。利用数据加密技术,确保数据在传输过程中不会被截取及窃听。广泛应用于web浏览器与服务器之间的身份认证和加密数据传输。对于SSL的支持,Shiro只是判断当前url是否需要SSL登录,是则自动重定向到https进行访问。流程首先生成数字证书,保...
2019-04-30 19:26:36 136
原创 hibernate学习之类型映射
基本类型映射左边为映射文件中指定类型时使用的,右边为映射到数据库时的字段类型 比如下面几种类型映 //实体类 public class Book {...
2019-04-30 19:07:33 104
原创 hibernate学习之映射继承
每个具体类对应一个表写一个虚拟父类,用具体类来继承这个虚拟父类,有多少个具体类就建多少张表,父表的外键关联全部的这些具体表由于根类是虚拟的,在父表这里也不必配置集合映射了,直接在具体类的映射文件中配置多对一的映射即可。通过外键来获取这些具体类时比较麻烦,要一个一个地去获取,然后再集成一个大集合下面举了一个例子,是学生拥有多张生活照和工作照的例子 //学生父表 ...
2019-04-30 18:29:31 88
原创 Shiro第十三章-RememberMe和Cookie
简介首先在登录页面选中remember me然后登录成功;如果是浏览器登录,一般会把remember me的cookie写到客户端保存下来;关闭浏览器再次打开,会发现浏览器还是记住你的;访问一般的网页服务端还是知道你是谁的,且能正常访问;但是比如我们访问淘宝时,如果要查看我的订单或进行支付时,还是需要再进行身份验证,以确定当前用户还是你。remember me...
2019-04-30 18:20:07 1182
原创 表单数据自动封装成对象
写后台接口时直接用对象来接收表单数据,前台将会把数据自动封装成对象。注意:表单中的name属性要与实体类的属性名称一致。在Spring进行数据封装时,提交到后台的数据都是String型,对于基本的数据类型会自动转化,比如将String转为int、float等。但是int型输入的不是全数字时转化就会失败,最终该字段被设置为0,即取其默认值。而Data型属性(字段类型对...
2019-04-30 18:19:56 597
原创 Shiro第十章-会话管理
会话即用户访问应用时保持的连接关系,在多次交互中应用能识别出当前访问的用户是谁,且可以在多次交互中保存一些数据。如访问一些网站时登录成功后可以记住用户,且在退出之前都可以识别当前用户是谁。获取会话:登陆成功后即可获取会话。login("classpath:shiro.ini", "zhang", "123"); //登录成功相当于创建了会话Subject sub...
2019-04-30 18:14:49 185
原创 assert
assert()宏是用于保证满足某个特定条件,用法是:assert(表达式);如果表达式的值为假,整个程序将退出,并输出一条错误信息。如果表达式的值为真则继续执行后面的语句。使用这个宏前需要包含头文件assert.h ...
2019-04-30 18:11:43 599
原创 账号、密码
三星136手机号码佳纯电话前三位百度网盘同上 慕课网手机QQ密码高数网站QQ邮箱Jiayi!电话/Jiachun!电话WPSQQ邮箱或手机佳纯电话前三位运动世界校园账号:学号密码:佳纯电话前三位github用户名:Eliyser注册邮箱:QQ邮箱密码:QQ密码博客网址:https://eliyser.github.io/MySQL123456...
2019-04-30 18:07:59 2604 1
原创 Shiro第六章-各种对象详解-完整用户登录认证与授权示例
RealmdoGetAuthenticationInfo()和getAuthenticationInfo()一样,都是做用户验证和返回身份凭证的。从调用链上,getAuthorizationInfo()会调用doGetAuthorizationInfo(),所以大部分时候是重写后者。AuthenticationToken收集用户提交的身份信息(如用户名和凭据(如...
2019-04-30 18:03:22 226
原创 Shiro第十八章-并发登录人数控制
简介在某些项目中,一个账户可能只允许一人登录或几个人同时登录,当超过人数时,要么进制后者登录,要么踢出前者登录。Spring Security直接提供了相应的功能。Shiro没有提供默认实现,但自己添加也是很容易的。示例采用第十六章的示例,主要功能是用户、公司、角色和资源之间关系的调整,如修改用户所属公司、所有角色,资源所需权限、角色所有资源等。目的:添加登...
2019-04-30 17:20:05 415
原创 Shiro第十九章-动态url权限控制、拦截器自定义
简介即访问url时进行权限匹配,如果没有权限则直接跳到错误页面。在Shiro中,更多的是通过AOP进行方法级别的权限控制,而通过url进行权限控制是一种集中的权限控制。示例拦截器:如authc、anon等字符串为一个拦截器;拦截器链:url=authc为一条拦截器链;拦截器链集合:url1=authc,url2=anon为拦截器链集合。仿chapter16的示...
2019-04-30 16:52:14 470
原创 hibernate学习之一对一映射
通过共享主键映射举例,用户和地址的一对一关系。用共享主键来关联的话,就是两张表的主键之一作为外键,关系限定为一对一。//用户类(包含地址)public class User { private int id; private String name; private Address address;}//地址类(包含用户)public...
2019-04-30 16:47:07 134
原创 servlet、request和response
Servletserver + let,运行在服务器端的小程序。Servlet实际就是一个接口,广义上我们认为凡是实现Servlet接口的类,我们都称他是一个Servlet。要继承HttpServlet类,必须检查项目->构建路径->库里里面有没有tomcat的jar包。作用:接收用户发送的请求;调用其他的java程序来处理请求;返回一个页面给用户。...
2019-04-30 16:12:49 227
原创 ElasticSearch-二-安装IK分词器
IK Analysis for Elasticsearch下载地址https://github.com/medcl/elasticsearch-analysis-ikAnalyzer: ik_smart , ik_max_word , Tokenizer: ik_smart , ik_max_wordVersions版本选择安装...
2019-04-30 15:45:33 68
原创 Shiro第十一章-cache缓存
缓存Shiro提供了类似于Spring的Cache抽象,即它本身不实现cache,但是对cache进行了抽象,方便更换底层cache实现(如,Ehcache,Hazelcast,OSCache,Terracotta,Coherence,GigaSpaces,JBossCache)。Cache接口:public interface Cache<K, V>...
2019-04-30 15:41:47 282
原创 Shiro第二十三章-多项目集中权限管理及分布式会话
core模块:提供调用接口。server模块:管理用户、应用和权限。app模块:各个应用,如一些内部管理系统应用,登录都跳到server登录,权限也从server获取。部署到nginx首先修改nginx.conf: 原文是location部分用正则匹配,但是测试报404,所以改成了直接匹配。#第一个虚拟主机server { #监听端口 l...
2019-04-30 15:30:23 300
原创 Cache和Buffer的区别
Cache高速缓存。我们知道各种硬件存在制作工艺上的差别,所以当两种硬件需要交互时,肯定会存在速度上的差异,而且只有交互双方都完成了这一步才能同时解放去处理其他书屋。假如现在有A、B两个设备,A用来交互的接口速度是1000M/s,B是500M/s,那么以下两种情况:A从B取一个1000M的文件原本需要1s,实际却需要2s,额外的1s是等待B把剩余的500M找出...
2019-04-30 15:19:38 211
原创 Shiro第二十二章-生成验证码
简介在实现登录功能时,大多数情况需要验证码支持,目的是防止机器人暴力破解密码。目前比较简单的验证码通过一些OCR工具就可以解析出来,复杂的验证码(一般通过扭曲、加线条或噪点等干扰)能够防止OCR识别。更复杂的如填字、算数等验证码则需要人工识别。目前比较可靠的是手机验证码,但是对于用户来说比普通验证码要麻烦得多。验证码图片可以通过Java提供的图片API实现,也可以...
2019-04-30 15:06:54 179
原创 Shiro第十七章-OAuth2集成
简介使用Apache Oltu来做对OAuth的实现,因为它比较轻量、简单、灵活。按照OAuth的角色分布,可以写三个程序:资源服务器、授权服务器和客户端Client各一个,也可以全部写到一个程序里面。本例采用写成两个程序,一个服务器端,一个客户端。数据库数据库:shiro-oauth2.所在会话:mysql。oauth2_user:用户表,资源拥有者。ad...
2019-04-30 14:51:40 1101
原创 Shiro第二章一-用户认证
简介Java安全框架Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。三个核心组件:Subject、SecurityManager和Realms。Subject:当前操作用户,代表了当前用户的安全操作。所有Subject都绑定到SEcurityManager,与Subject的所有交互都会委托给SecurityMana...
2019-04-30 14:26:07 139
原创 Spring Security
简介基于Spring的应用程序提供声明式安全保护的安全性框架,提供了完整的安全性解决方案,能够在web请求级别和方法调用级别处理身份验证和授权,充分使用了依赖注入和面向切面的技术。主要从两个方面解决安全性问题web请求级别:使用servlet过滤器保护web请求并限制url的访问方法调用级别:使用Spring AOP保护方法调用,确保具有适当权限的用户才能访问...
2019-04-30 14:20:13 170
原创 BCrypt加密算法
BCrypt算法与md5、sha算法主要区别为,每次生成的密文(hash)都是不同的,这样暴力猜解起来要更困难一点,而且密文长度较长,为60位。使用方法:BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();String hashedPassword = passwordEncode...
2019-04-30 13:54:56 532
原创 ElasticSearch-一-ElasticSearch安装
ElasticSearch 简介Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合.安装https://www.elastic.co/cn/downloads/past-releases/elasticsear...
2019-04-30 13:35:58 66
原创 Shiro第十五章-单点登录
简介Shiro 1.2开始支持Jasig CAS单点登录。作用:用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无需多次登录。服务器下载Jasig CAS分为服务器端和客户端,服务器提供用户验证。访问需要登录的页面,自动跳转单点登录服务器:https://localhost:8443/server/login?service=原url,单点登录采...
2019-04-30 13:29:24 172
原创 System.err.println
System.err.println是运行期异常和错误反馈的输出流的方向标准输出往往是带缓存,而标准出错没有缓存与System.out.println混用会导致输出顺序错乱public class TestCodeSeg { static{ System.out.println("1"); } { Syst...
2019-04-30 12:38:16 661
vue3和vue2对比好上手么?
2021-07-22
做为新员工如何做自我介绍
2021-06-23
什么是并发?在lordrunner中,如何进行并发的测试?集合点失败了会怎么样? .
2021-05-13
Python解释器种类以及特点?
2020-11-10
python中请至少列举5个 PEP8 规范(越多越好)。
2020-11-10
Python解释器种类以及特点?????
2020-11-10
Python和Java、PHP、C、C#、C++等其他语言的对比?
2020-11-10
== 和 equals 的区别是什么
2020-11-04
JDK 和 JRE 有什么区别?
2020-11-04
什么是反射? 什么是反射?
2020-10-29
如何决定使用 HashMap 还是 TreeMap?
2020-10-28
List、Set、Map 之间的区别是什么?
2020-10-28
配置了lazy="true"一定会懒加载吗?
2020-10-28
折构函数和虚函数?折构函数和虚函数?
2020-10-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人