JavaEE
静谧之心
专业摩的佬
业余吉他手
退役喷子
展开
-
Java项目中使用log记录日志的一些总结
本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用、日志的选用、日志级别介绍、日志记录的一些最佳实践几个方面阐述。日志的作用主要作用包括:出问题后定位当时问题显示程序当前运行状态日志的选用Java里存在众多的开源日志框架: slf4j, logback, log4j, JCL(Apache Common Logging), JUL(JDK自带的java.u...原创 2020-04-14 04:35:59 · 629 阅读 · 0 评论 -
JWT加密解密工具使用示例
Maven 依赖<!-- jjwt支持 --><dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.7.0</version></dependency> ...原创 2020-03-01 05:13:54 · 2408 阅读 · 0 评论 -
深入理解JWT的使用场景和优劣
编码,签名,加密这些基础知识简单地介绍下,千万别搞混了三个概念。在 jwt 中恰好同时涉及了这三个概念,笔者用大白话来做下通俗的讲解(非严谨定义,供个人理解)编码(encode)和解码(decode)一般是编码解码是为了方便以字节的方式表示数据,便于存储和网络传输。整个 jwt 串会被置于 http 的 Header 或者 url 中,为了不出现乱码解析错误等意外,编码是有必要的。在 jwt...原创 2020-02-29 09:31:42 · 799 阅读 · 2 评论 -
OAuth认证实现机制及单点登录原理
OAuth认证OAuth认证是为了做到第三方应用在未获取到用户敏感信息(如:账号密码、用户PIN等)的情况下,能让用户授权予他来访问开放平台(主要访问平台中的资源服务器Resource Server)中的资源接口。其流程主要是:用户首先要保持登录,即已认证通过的状态第三方应用请求用户授权(我理解是弹出一个显示的操作界面让用户确认给第三方授权)用户授权成功之后会向Authori...原创 2020-02-27 17:03:33 · 6642 阅读 · 1 评论 -
理解 OAuth 2.0
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。一、应用场景为了理解OAuth的适用场合,让我举一个假设的例子。有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让"云冲印"读取自...转载 2020-02-22 12:01:01 · 543 阅读 · 0 评论 -
Spring security 开放 Swagger 访问权限
开放这四个目录搞定 .antMatchers("/swagger-ui.html").permitAll() .antMatchers("/webjars/**").permitAll() .antMatchers("/v2/**").permitAll() .antMatchers("/s...原创 2020-02-21 05:11:53 · 11540 阅读 · 6 评论 -
Spring security 重写Filter 实现 json 登录
在使用SpringSecurity中,大伙都知道默认的登录数据是通过key/value的形式来传递的,默认情况下不支持JSON格式的登录数据,如果有这种需求,就需要自己来解决,本文主要解决此问题:使用JSON登录上面演示的是一种原始的登录方案,如果想将用户名密码通过JSON的方式进行传递,则需要自定义相关过滤器,通过分析源码我们发现,默认的用户名密码提取在UsernamePasswordAut...原创 2020-02-20 16:16:05 · 2907 阅读 · 0 评论 -
Spring Security 实现前后端分离登录 JSON回应 !
前置知识大家知道,在自定义 Spring Security 配置的时候,有这样几个属性:@Overrideprotected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authenticated() ...原创 2020-02-20 12:18:25 · 1315 阅读 · 0 评论 -
一分钟弄懂Spring @Bean @Autowired @Qualifier 的常见异常 以及命名规范
情况1:创建的bean类型和自动装配字段的类型不同-[此操作无效]@AutowiredBCryptPasswordEncoder passwordEncoder;@BeanPasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder();}情况2:创建的bean类型和自动装配字段的类型相同-[此操...原创 2020-02-20 07:44:03 · 1123 阅读 · 1 评论 -
Spring boot + spring security 实现 Rest 登录 ( json )
第一步,获取基本springboot项目从 spring官网获取security+session+redis依赖的springboot项目安装配置redis,修改配置文件,启动项目,拿到登录密码,用户名为user.根据官方文档,配置demo项目,理解spring security的机制第二步,添加自己的登录验证方式添加session策略,让权限验证从session里获取token,而不是...转载 2020-02-17 09:15:17 · 1997 阅读 · 0 评论 -
Session与Token认证机制 前后端分离下如何登录
Web登录涉及到知识点1.1 HTTP无状态性HTTP是无状态的,一次请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的。当然它知道是哪个客户端地址发过来的,但是对于我们的应用来说,我们是靠用户来管理,而不是靠客户端。所以对我们的应用而言,它是需要有状态管理的,以便服务端能够准确的知道http请求是哪个用户发起的,从而判断该用户是否有权限继续这个请求。这个过程就是常...原创 2020-02-17 09:03:36 · 584 阅读 · 0 评论 -
java中length,length(),size()区别
1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!这个例子来演示这两个方法和一个属性的用法pub...原创 2020-01-16 06:30:13 · 919 阅读 · 0 评论 -
Arrays.asList()源码分析
String s[]={"aa","bb","cc"}; List<String> sList=Arrays.asList(s); for(String str:sList){//能遍历出各个元素 System.out.println(str); } System.out.println(sList.size());//为3 System.out.pr...原创 2019-10-08 14:36:58 · 559 阅读 · 0 评论 -
StringBuilder StringBuffer 多线程优缺点
StringBuilder 线程不安全 快StringBuffer 线程安全 慢原创 2019-09-25 07:46:48 · 944 阅读 · 0 评论