SpEL表达式
SpEL表达式SpEL概述Spring表达式语言全称为"Spring Expression Language",缩写为"SpEL",类似于Struts2x中使用的OGNL表达式语言,能在运行时构建复杂表达式、存取对象图属性、对象方法调用等等,并且能与Spring功能完美整合,如能用来配置Bean定义。
表达式语言给静态Java语言增加了动态功能。
SpEL是单独模块,只依赖于core模块,不依赖于其他模块,可以单独使用。
SpEL能干什么?表达式语言一般是用最简单的形式完成最主要的工作,减少我们的工作量。
SpEL支持如下表达式:一、基本表达式字面量表达式、关系,逻辑与算数运算表达式、字符串连接及截取表达式、三目运算及Elivis表达式、正则表达式、括号优先级表达式
二、类相关表达式类类型表达式、类实例化、instanceof表达式、变量定义及引用、赋值表达式、自定义函数、对象属性存取及安全导航表达式、对象方法调用、Bean引用
三、集合相关表达式
内联List、内联数组、集合,字典访问、列表,字典,数组修改、集合投影、集合选择
不支持多维内联数 ...
HTTP Content-Type
Content-Type关于Content-Type即MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。
Content-Type是实体头域(或称为实体头部,entity header)用于向接收方指示实体(entity body)的介质类型的,或称为资源的MIME类型,现在通常称media type更为合适。(例如,指定HEAD方法送到接收方的实体介质类型,或GET方法发送的请求介质类型,表示后面的文档属于什么MIME类型。)
POST请求的消息主体放在entity body中,服务端根据请求头中的Content-Type字段来获取消息主体的编码方式,进而进行解析数据。
Content-Type的格式:Content-Type:type/subtype ;parameter
123type :主类型,任意的字符串,如text,如果是*号代表所有;subtype :子类型,任意的字符串,如html,如果是*号代表所有,用“/”与主类型隔开;pa ...
HTTP Authorization 之 Basic Auth
Basic Auth一、简介在HTTP中,基本认证(Basic access authentication)是一种用来允许网页浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。
优点基本认证的一个优点是基本上所有流行的网页浏览器都支持基本认证。基本认证很少在可公开访问的互联网网站上使用,有时候会在小的私有系统中使用(如路由器网页管理接口)。后来的机制HTTP摘要认证是为替代基本认证而开发的,允许密钥以相对安全的方式在不安全的通道上传输。
程序员和系统管理员有时会在可信网络环境中使用基本认证,使用Telnet或其他明文网络协议工具手动地测试Web服务器。这是一个麻烦的过程,但是网络上传输的内容是人可读的,以便进行诊断。
缺点虽然基本认证非常容易实现,但该方案创建在以下的假设的基础上,即:客户端和服务器主机之间的连接是安全可信的。特别是,如果没有使用SSL/TLS这样的传输层安全的协议,那么以明文传输的密钥和口令很容易被拦截。该方案也同样没有对服务器返回的信息提供保护。
现存的浏览器保存认证信息直到标签页或浏览器被关闭,或者用户清除历史记录。HTTP没有为服务 ...
HTTP Authorization 之 Bearer Token
Bearer Token(Token 令牌)定义:为了验证使用者的身份,需要客户端向服务器端提供一个可靠的验证信息,称为Token,这个token通常由Json数据格式组成,通过hash散列算法生成一个字符串,所以称为Json Web Token(Json表示令牌的原始值是一个Json格式的数据,web表示是在互联网传播的,token表示令牌,简称JWT)
JWT分为三部分:第一部分header:头部1234{ "typ" : "JWT", "alg" : "HS256" }
typ:类型
alg:算法,HS256表示哈希算法的mac值。SHA256/HmacSHA256,SHA256表示直接加密,HmacSHA256表示用秘钥进行加密。SHA Hash Algorithm,安全散列算法, HMAC(Hash Message Authentication Code,散列消息鉴别码)
第二部分payload:(Claim正文部分)Base64加密的12345{ ...
HTTP Authorization 之 Digest Auth
Digest Auth一、简介Digest Auth(摘要访问认证)是一种协议规定的Web服务器用来同网页浏览器进行认证信息协商的方法。它在密码发出前,先对其应用哈希函数,这相对于HTTP基本认证发送明文而言,更安全。
从技术上讲,摘要认证是使用随机数来阻止进行密码分析的MD5加密哈希函数应用。它使用HTTP协议。 HTTP Digest Auth是对HTTP Basic Auth的增强。由于HTTP Basic Auth几乎是以明文传输用户名和密码,容易泄露。而HTTP Digest Auth能够传递认证信息,但是传递的是使用摘要算法(如:MD5)产生的密文,服务端也不用存储明文用户信息,降低了泄密的可能性。但是这种方式仍然可以通过中间人攻击的方式拦截、模拟,所以算是一种折中方案。
二、原理摘要访问认证最初由RFC 2069 (HTTP的一个扩展:摘要访问认证)中被定义。RFC 2069 大致定义了一个传统的由服务器生成随机数来维护安全性的摘要认证架构。认证响应由下列组成(HA1、HA2、A1、及A2为字符串变量的名称):
123HA1 = MD5(A1) = MD5(userna ...
Dockerfile详解
Dockerfile的常用命令如下,大家使用时也可以到官网查阅所有的命令,不用记忆:
命令
作用
FROM image_name:tag
使用哪个基础镜像启动构建流程,每个Dockerfile的第一条命令必须是FROM,FROM指令指定一个已存在的镜像,后续指令都继续该镜像进行,这个镜像也称为基础镜像
MAINTAINER user_name
声明镜像的创建者
ENV key value
设置环境变量 (可以写多条)
RUN command
Dockerfile的核心部分(可以写多条)
ADD source_dir/file dest_dir/file
将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file
和ADD相似,但是如果有压缩文件并不能解压
WORKDIR path_dir
设置工作目录,指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点
EXPOSE port1 prot2
用来指定端口,使容器内的应用可以通过端口和外界交互
CMD argum ...
Docker入门教程
系列一
全网最实在的docker入门教程一
全网最实在的docker入门教程二
全网最实在的docker入门教程三
全网最实在的docker入门教程四(创建自己的私有仓库容器)
遇到mavn-docker插件报timeout:
https://blog.csdn.net/weixin_40628102/article/details/104060420
执行iptables -I INPUT -p tcp --dport 2375 -j ACCEPT
当浏览器中访问http://192.168.68.128:2375/version,正确显示内容即配置正确
maven配置: 12345678910111213141516171819<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configur ...
证书格式
证书格式证书格式分类分为2大类:密钥库(含私钥,也可能有公钥)和公钥证书(仅含公钥)
密钥库文件格式【Keystore】123456789101112131415格式 : JKS扩展名 : .jks/.ks描述 : 【Java Keystore】密钥库的Java实现版本,provider为SUN特点 : 密钥库和私钥用不同的密码进行保护格式 : JCEKS扩展名 : .jce描述 : 【JCE Keystore】密钥库的JCE实现版本,provider为SUN JCE特点 : 相对于JKS安全级别更高,保护Keystore私钥时采用TripleDES格式 : PKCS12扩展名 : .p12/.pfx描述 : 【PKCS #12】个人信息交换语法标准特点 : 1、包含私钥、公钥及其证书 2、密钥库和私钥用相同密码进行保护
证书文件格式【Certificate】123456789101112131415161718格式 : DER 扩展名 : .c ...
OpenSSL
[TOC]
OpenSSLOpenSSL 是一个开源项目,其组成主要包括一下三个组件:
openssl:多用途的命令行工具
libcrypto:加密算法库
libssl:加密模块应用库,实现了ssl及tls
openssl可以实现:秘钥证书管理、对称加密和非对称加密
对称加密对称加密需要使用的标准命令为enc,用法如下:
123openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]
常用选项有:
123456-in filename:指定要加密的文件存放路径-out filename:指定加密后的文件存放路径-salt ...
证书介绍
证书证书包含
申请者的基本信息:网站使用的加密算法、网站使用的hash算法;
申请者的公钥;
认证机构的信息:认证机构的名称,证书到期时间。
认证机构的证书签名。
总之:证书的核心功能就是安全的传递公钥!
证书编码标识证书编码类型,表明证书是以什么编码存在
Der (Distinguished Encoding Rules)
二进制编码的证书或公私钥
正确的理解是:”我有二进制编码的证书”,而不是”我有一个DER证书”
der格式的证书文件内容是经过加密的二进制数据,也就是说文件内容打开后是乱码
Pem (Privacy Enhanced Mail)pem格式的证书内容是经过加密的文本文件,一般是base64编码格式的Der证书,增加头尾了
可直接用记事本打开查看
PEM私钥增加:
12-----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----
PEM公钥增加:
12-----BEGIN PUBLIC KEY----- -----END PUBLIC KEY-----
PEM证书增加:
12-----BEGIN ...