Java ServletRequest 对象的一些必备的实用技巧
1.前言ServletRequest是我们搞JavaWeb经常接触的ServletApi。有些时候我们要经常对其进行一些操作。这里列举一些经常的难点操作。2.提取body中的数据前后端交互我们会在body中传递数据。我们如何从body中提取数据。通常我们会通过IO操作:/***obtainrequestbody**@paramrequesttheServletRequest*@returnbody 查看全文
Spring Security 实战干货:登录成功后返回 JWT Token
1.前言欢迎阅读SpringSecurity实战干货系列文章,上一文我们实现了JWT工具。本篇我们将一起探讨如何将JWT与SpringSecurity结合起来,在认证成功后不再跳转到指定页面而是直接返回JWTToken。本文的DEMO可通过文末的方式获取2.流程JWT适用于前后端分离。我们在登录成功后不在跳转到首页,将会直接返回JWTToken对(DEMO中为JwtTokenPair),登录失败后 查看全文
java系列==1、java常见问题
1. Java中的原始数据类型都有哪些,它们的大小及对应的封装类是什么? byte —— 1 byte —— Byte short —— 2 bytes —— Short int —— 4 bytes —— Integer long —— 8 bytes —— Long float —— 4 byt ... 查看全文
Spring 的 @Primary 注解
简单的说,就是当Spring容器扫描到某个接口的多个 bean 时,如果某个bean上加了@Primary 注解 ,则这个bean会被优先选用,如下面的例子: @Component public class FooService { private FooRepository fooReposito ... 查看全文
Spring Security 实战干货:自定义异常处理
1.前言最近实在比较忙,很难抽出时间来继续更SpringSecurity实战干货系列。今天正好项目中SpringSecurity需要对认证授权异常的处理,就分享出来吧。2.SpringSecurity中的异常SpringSecurity中的异常主要分为两大类:一类是认证异常,另一类是授权相关的异常。2.1AuthenticationExceptionAuthenticationException是 查看全文
Spring Security 实战干货:使用 JWT 认证访问接口
1.前言欢迎阅读SpringSecurity实战干货系列。点击原文阅读进入系列。之前我讲解了如何编写一个自己的Jwt生成器以及如何在用户认证通过后返回JsonWebToken。今天我们来看看如何在请求中使用Jwt访问鉴权。DEMO获取方法在文末。2.常用的Http认证方式我们要在Http请求中使用Jwt我们就必须了解常见的Http认证方式。2.1HTTPBasicAuthenticationHTT 查看全文
java 注解结合 spring aop 实现自动输出日志
auto-logauto-log是一款为java设计的自动日志监控框架。创作目的经常会写一些工具,有时候手动加一些日志很麻烦,引入spring又过于大材小用。所以希望从从简到繁实现一个工具,便于平时使用。特性基于注解+字节码,配置灵活自动适配常见的日志框架支持编程式的调用支持注解式,完美整合spring支持整合spring-boot支持慢日志阈值指定,耗时,入参,出参,异常信息等常见属性指定变更日 查看全文
Spring Security 实战干货: RBAC权限控制概念的理解
1.前言欢迎阅读SpringSecurity实战干货系列文章。截止到上一篇我们已经能够简单做到用户主体认证到接口的访问控制了,但是依然满足不了实际生产的需要。如果我们需要一个完整的权限管理系统就必须了解一下RBAC(Role-BasedAccessControl基于角色的访问控制)的权限控制模型。2.为什么需要RBAC?在正式讨论RBAC模型之前,我们要思考一个问题,为什么我们要做角色权限系统?答 查看全文
Java 8 Stream Api 中的 skip 和 limit 操作
1.前言Java8StreamAPI中的skip()和limit()方法具有类似的作用。它们都是对流进行裁剪的中间方法。今天我们来探讨一下这两个方法。2.skip()skip(langn)是一个跳过前n个元素的中间流操作。我们编写一个简单的方法来进行skip操作,将流剩下的元素打印出来。publicstaticvoidskip(longn){Stream<Integer>integer 查看全文
Spring 异常处理的各种姿势
1.前言统一的异常处理对于应用的重要性不言而喻。今天我们来介绍一下Spring如何来进行统一的Rest异常处理。同时我们也会简单比较一下它们之间的优劣。2.@Controller结合@ExceptionHandler在控制器中声明一个方法然后用@ExceptionHandler注解标记即可:@Controller@RequestMapping( 查看全文
Java中4大基本加密算法解析
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。 简单的java加密算法有: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) S ... 查看全文
线程池处理异步任务队列
线程池处理异步任务队列 /// <author>cxg 2020-9-3</author> /// 支持d7以上版本,更低版本没有测试,支持跨OS unit tasks; interface uses {$IFDEF mswindows} Windows, {$ENDIF} {$IFDEF posi ... 查看全文
数组实现一个简单的栈结构
public class Stack { private int maxSize=16; private int top; private int[] arr=null; public Stack(int maxSize) { if(maxSize<1){ throw new RuntimeExce ... 查看全文
静态路由算法 vs 动态路由算法
静态路由算法主要有洪泛法,随机走动法,最短路径法,基于流量的路由算法1.洪泛法(Flooding)节点收到一个报文分组后,向所有可能的方向复制转发。每个节点不接受重复分组,网络局部故障也不影响通信,但大量重复分组加重了网络负担。这种方法适宜于网络规模小,通信负载轻,可靠性要求极高的通信场合——如军用 ... 查看全文
快速定位网站性能问题,提前下班!
大家好,我是小雨小雨,致力于分享有趣的、实用的技术文章。 内容分为翻译和原创,如果有问题,欢迎随时评论或私信,希望和大家一起进步。 分享不易,希望能够得到大家的支持和关注。 查看network时间 直接来一张大图你怕不怕?哈哈 咱们先看看谷歌浏览器network中waterfall各字段的含义哈。简 ... 查看全文
.net中使用MSMQ
学习微软的技术有点让人恼火的一个原因是,技术文档跨度太大。 有一个简单的例子,但是涉及到很多具体使用的细节,隐藏在大量文字文档中。 作为技术文档,似乎并不是为了给想学习的人使用的,开发者将所有有关该技术的内容,一股脑的堆叠起来。 了解到MSMQ可以用作windows上的进程间通信,所以想了解应该如何 ... 查看全文
Log4Net 发布后不能用
不像原来的C开发,所有错误都有迹可循(概率性问题除外),高级语言封装了太多细节,使用更方便,但是定位更难。 这次的错误,调试时有日志,发布后没有日志。 找了很多说明,一般都是说怎么配置怎么配置,但是无效。 第一个有效的方案是,把log4net.config文件拷贝到发布的根目录下,果然可以。我注意到 ... 查看全文
Metasploit 使用msfconsole帮助功能技巧
Metasploit 使用msfconsole帮助功能技巧当用户使用Metasploit框架时,通常都是直接执行msfconsole,进入MSF终端。此时,将使用所有默认设置启动了Metasploit框架。用户也可以在启动时,进行简单配置。为了帮助用户配置Metasploit框架,启动MSF终端时, ... 查看全文