2019-03-15 11:01:14    375    0    0

运行流程

(A)用户打开客户端以后,客户端要求用户给予授权。

(B)用户同意给予客户端授权。

(C)客户端使用上一步获得的授权,向认证服务器申请令牌。

(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。

(E)客户端使用令牌,向资源服务器申请获取资源。

(F)资源服务器确认令牌无误,同意向客户端开放资源。

OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(

2019-03-15 11:00:44    315    0    0

流程:
1)用户访问系统A;
2)系统A发现用户没有登录,也没有ticket,重定向到认证中心;有ticket跳转 第7)步
3)认证中心发现用户并未登录,展示登录页面;
4)用户登录;
5)认证中心登录成功,带着生成的ticket,重定向到之前的系统A页面;
6)系统A检查登录,还是未登录,但存在ticket。系统A带着ticket和认证中心进行校验;
7)认证中心返回

2018-06-11 18:35:31    317    0    0
#coding=utf-8  
import socket  
target_host = "www.baidu.com"  
target_port = 80  
#建立一个socket对象  
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)  
#连接客户端  
client.connect((target_host,ta
2018-06-06 20:28:58    269    0    0

问题一,如何解决消息重复投递:

问题二,如何解决消息丢失:

消息在投递的时候是需要回执 的。需要返回一个确认信息。

比如 basic.ack去针对每一条消息进行回执。

但是当auto_ack设置为true的时候,那每一条消息投递完就默认是得到了接收回执。这个时候如果应用断开或者发生意外,

设置了true的情况,就会引起上述两个问题:

因为rabbitMQ 的机制是,如果默认得到回执

2018-04-15 02:04:05    126    0    0

禁止使用SELECT *,只获取必要的字段,需要显示说明列属性

禁止使用INSERT INTO t_xxx VALUES(xxx),必须显示指定插入的列属性

解读:容易在增加或者删除字段后出现程序BUG

禁止使用属性隐式转换

解读:SELECT uid FROM t_user WHERE phone=13812345678 会导致全表扫描,而不能命中phone索引

禁止

2017-12-27 13:19:03    267    0    0
server:
  port: 8000

spring:
    datasource:
        name: BaBa
        url: jdbc:mysql://****:3300/BaBa
        username: root
        password: root
        # 使用druid数据源
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        filters: stat
        maxActive: 20
        initialSize: 1
        maxWait: 60000
        minIdle: 1
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: select 'x'
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        maxOpenPreparedStatements: 20
mybatis:
  mapper-locations: classpath:mapping/*.xml
  type-aliases-package: com.baba.model

#pagehelper
pagehelper:
    helperDialect: mysql
    reasonable: true
    supportMethodsArguments: true
    params: count=countSql


2017-12-27 13:18:05    255    0    0
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.baba</groupId>
	<artifactId>baba</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>baba</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<!--<version>2.0.0.BUILD-SNAPSHOT</version>-->
		<version>1.5.9.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.7</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>
2017-12-02 23:39:10    270    0    0

打包命令

mvn install

 

完成之后再target里会出现一个jar包

运行命令,包括不同项目的不同配置相关:

java -jar xxx.jar --spring.profiles.active:dev

 另外 

根据yml配置的变量而引用的方法:见 获取yml自定义配置



ps:  java -jar 未必生效,可能在maven打包的时候才行所

2017-10-20 16:14:07    252    0    0
  • 打鸡蛋的时候 几点里面放一点味精  鸡蛋味道会好很多   鸡蛋搅拌均匀后加一点水 炒出来的鸡蛋颜色会非常好
  • 鸡蛋要七成熟的油温下锅
  • 如果是豆油    一定要锅热了再下油   这个很重要   不然有一股生油的味道  所以锅,多热一会
  • 一般葱花炸香 正常炒菜 都是5成油温下锅  炸东西用7成  爆炒用7成
  • 5成是手放到锅的上空  能感觉到热 就是5成
  • 所有的炖菜 比如土豆豆角炖排骨  要先把菜炒熟  再加水 豆角炒到翠绿  土豆边缘变白  然后加水炖
  • 炒的时候加一丢丢糖
2017-09-27 10:03:30    89    0    0

一般的时候,问到区别的时候都会这样认为:

GET在浏览器回退时是无害的,而POST会再次提交请求。

GET产生的URL地址可以被Bookmark,而POST不可以。

GET请求会被浏览器主动cache,而POST不会,除非手动设置。

GET请求只能进行url编码,而POST支持多种编码方式。

GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

GET请求在URL中传送的参数是有长度限制的,而POST么有。

对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

GET参数通过URL传递,POST放在Request body中。

实质上这不完全正确的。

 

POST 是否比 GET 安全?
是的, POST要比GET安全一点点,注意,是一点点。。。

说这两者都是明文传送当然是没有错的了,但是这里有一个细节,就是GET的URL会被放在浏览器历史和WEB 服务器日志里面。
POST 发完基本就木有了。。
所以如果你把关键数据放在GET里面,被人偷窥了浏览器,或者WEB服务器被入侵日志被人倒去了,基本泄露可能性100%。而POST来说,日志没有记录,只要数据库服务器不被入侵,基本还是安全的。
当然如果被抓了包,这一切都没有什么卵用,所以,HTTPS该用还是得用。
 
在我大万维网世界中,TCP就像汽车,我们用TCP来运输数据,它很可靠,从来不会发生丢件少件的现象。但是如果路上跑的全是看起来一模一样的汽车,那这个世界看起来是一团混乱,送急件的汽车可能被前面满载货物的汽车拦堵在路上,整个交通系统一定会瘫痪。为了避免这种情况发生,交通规则HTTP诞生了。HTTP给汽车运输设定了好几个服务类别,有GET, POST, PUT, DELETE等等,HTTP规定,当执行GET请求的时候,要给汽车贴上GET的标签(设置method为GET),而且要求把传送的数据放在车顶上(url中)以方便记录。如果是POST请求,就要在车上贴上POST的标签,并把货物放在车厢里。当然,你也可以在GET的时候往车厢内偷偷藏点货物,但是这是很不光彩;也可以在POST的时候在车顶上也放一些数据,让人觉得傻乎乎的。HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。

在我大万维网世界中,还有另一个重要的角色:运输公司

2/3