自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

喵喵分享师

本人自学计算机编程技术,愿意分享各种相关知识,也愿意与各位博友分享计算机相关知识,以及计算机之外的其他技术,还有学习方法和思维

  • 博客(37)
  • 收藏
  • 关注

原创 JTW结构

在这篇笔记中,我们将了解JTW(JSON Web Token)的结构。我们将看到JTW是如何创建的,令牌的各个部分是什么,以及您如何自己构建和构造JTW。您还将了解一些这种结构的含义,以及使用JTW进行授权时的一些结果优缺点。基本上,JTW本质上就是一个JSON令牌,对吧?现在您知道JTW的目的是解决什么样的问题了吗?让我们看看JTW是如何构建来解决这些问题的,首先从了解JTW的外观开始。这里是一个样本。JTW看起来并不像JavaScript那样,看起来像一堆字符。首先,请注意有三种不同的颜色。这些颜色的区

2024-05-29 22:37:20 1042

原创 深入理解Spring Security:保护你的Web应用程序

他战胜了一个又一个陷阱,最终克服了所有障碍,遇到了坏家伙,坏家伙说:“邦德先生,我早就在等你了。所有的操作系统级别的安全、JVM级别的安全、服务器级别的安全,都已经为你处理好了。你需要的是一群安全专家,他们花费大量时间思考如何让应用程序更安全,如何防止黑客攻击你的应用程序。在这个视频中,你将了解Spring Security到底是什么,以及为什么你可能希望考虑使用它来保护你的网络应用程序。Spring Security在行业中被广泛采用,尽管它有一些漏洞,但由于使用广泛,即使发现了漏洞,也会很快被修复。

2024-05-29 22:15:41 945

原创 理解OAuth:服务间的授权机制

OAuth是一种授权机制,用于在服务之间进行委托访问,而不是身份验证。它最初是为了解决服务之间的授权问题而创建的,而不是用于授权用户。OAuth使用类似于汽车主钥匙和副钥匙的比喻来解释其工作原理。通过OAuth流程,用户可以允许一个服务代表其访问另一个服务,并且在授权完成后,服务会获得一个令牌,该令牌包含了被授权的权限信息。这个令牌就像是一把有限权限的钥匙,可以用于访问用户数据,而不需要用户的凭据。OAuth是一个开放标准,并且需要遵循特定的流程和规定,以确保不同服务之间的通信顺利进行。

2024-05-29 22:10:20 800

原创 理解和使用JSON Web Tokens(JWT)进行Web应用程序授权

如今,Web令牌是在网络中进行授权的一种非常流行的方式。JWT在Microsoft的背景下也变得非常流行,并且对我们今天构建应用程序的方式产生了一些其他影响。在本篇笔记中,我们将学习JWT是什么,以及如何在保护Web应用程序的上下文中具体使用它。JWT的全称通常发音为"jot",顺便提一句,这就像添加额外的"a"一样,也就是"jabbin"。然而,我发现在社区中,对JWT存在一些争议。但是在本篇笔记中,我们将把它称为Jabber。虽然Jabber通常用于管理授权,但其背后的理念是创建两方之间安全通信的标准方

2024-05-29 21:51:00 1010

原创 Spring Boot + Spring Security + JWT 从零开始

这个LDAP服务器将在内存中保存所有信息,这对于开发目的来说就够了,当我们构建一个连接到这个本地LDAP服务器的应用程序时,我们所构建的东西可以轻松地指向一个真实的LDAP服务,然后仍然可以工作相同的方式。所以我要做的是去我的POM文件,添加一些依赖项。这篇笔记中,我们将学习如何从头开始设置一个带有Spring Security的Spring Boot应用程序,它连接到一个LDAP身份验证的Spring Security身份验证提供程序,这将是即将出现的,这个连接和工作都是开箱即用的。

2024-05-29 21:37:00 1192

原创 创建Spring Security项目并实现基于JWT的身份验证和授权

项目在IntelliJ中打开后,我要做的第一件事是创建一个端点,我将其称为HelloResource,这是一个控制器类,并且包含一个简单的方法。由于我们在类中添加了Spring Security,默认情况下,Spring Security会创建一个用户,并且这个/hello端点将被放在认证墙后面,只有经过认证的用户才能访问。总的来说,这个项目实现了一个简单的Spring Boot和Spring Security应用,支持基于JWT的认证和授权,使我们能够保护API端点,确保只有经过认证的用户才能访问。

2024-05-29 21:23:37 797

原创 本篇笔记结束后你将学会的一些内容

我们探讨了几个关键术语和三种主要的OAuth流程。理解这些内容有助于你在开发中实现安全的OAuth授权机制。有关更多详细信息和实践,建议你继续观看下一部分视频,了解OAuth在身份验证中的应用。

2024-05-29 20:56:01 481

原创 使用Spring Boot和Spring Security实现基于OAuth的Facebook和GitHub身份验证教程

OAuth最初设计用于授权,而不是身份验证。然而,开发人员发现了一种方法来利用OAuth来进行身份验证。这种方法利用了流行服务(如Google、Facebook、GitHub等)的可靠身份验证机制,避免了自己构建复杂的身份验证系统。

2024-05-29 20:45:00 751

原创 创建一个新的Spring Security应用程序,并使用JDBC连接数据库

在这个教程中,我们将学习如何创建一个新的Spring Security应用程序,使用JDBC连接数据库以获取用户信息并进行认证。我们还将学习如何配置Spring Security以从数据库中获取用户和权限信息,并使其与不同的模式和数据源一起工作。

2024-05-29 20:34:37 323

原创 配置Spring Security授权

这些用户可以是内存中的,也可以来自数据库或其他来源,只要我们有两个不同角色的用户,以便我们能够根据角色配置不同的访问权限。在了解了基本的认证和授权配置后,您可以深入研究Spring Security的工作原理,以进行更高级的开发。所有的API在登录时才能访问,需要输入系统中用户的用户名和密码,无论这些用户是如何配置的。创建API: 我们将创建两个API,一个是/admin,返回"Admin",另一个是/user,返回"Welcome User"。如果某人已登录但只有用户角色,他们不应该能够访问该API。

2024-05-27 16:13:51 247

原创 配置Spring Security的身份验证

在我们开始使用Spring Security之前,首先要配置身份验证。这个过程涉及创建用户并生成他们的身份验证。在这段视频中,我们将了解配置Spring Security身份验证的流程,这种身份验证方式会在Spring Security应用程序中验证用户身份。让我们一起来看看Spring Security的配置流程。

2024-05-27 11:55:44 953

原创 深入理解Spring Security:认证机制解析

如果你只在应用程序的一部分中添加Spring Security,而让应用程序的其他部分存在漏洞,那么你的整个应用程序就不安全,显然是不行的。所以无论你是否想让应用程序中的一个URL由Spring Security保护,还是多个URL,你的配置都是直接与Spring Security相关的,你不必在过滤器之后搞乱一切。所以无论你是否想让应用程序中的一个URL由Spring Security保护,还是多个URL,你的配置都是直接与Spring Security相关的,你不必在过滤器之后搞乱一切。

2024-05-27 11:33:37 591

原创 Spring Security:认证与授权

所以当你访问该站点时,你需要告诉它,它的系统中的数百万个账户中的哪一个与你对应。当你告诉它与你对应的账户后,你还需要向应用程序证明它确实是你。比如,当一个应用程序向你发送一条短信并要求你输入它时,试图确定你是否拥有真实用户应该拥有的某物,比如你的手机,因为手机比密码稍微难以出售。”的问题,当然还需要证明你确实是你所说的人。如果你从你的Web应用程序中请求某些内容,你通过告诉警卫你是谁来回答第一个问题。在这篇文章中,你将学到与Spring Security相关的五个关键概念和术语,这些是你真正需要了解的。

2024-05-27 11:13:39 1115

原创 如何将Spring Security添加到一个新的Spring Boot应用程序

这篇文章是关于如何将Spring Security添加到一个新的Spring Boot应用程序的详细步骤及其效果的介绍。

2024-05-27 11:05:09 414

原创 类型强制和 === 运算符

因此,JavaScript解释器会将数字转换成字符串,所以数字123变成了字符串“123”,然后与字符串“4”连接,结果是“1234”。这是因为,当你使用双等号(==)时,如果两个值类型不同,JavaScript解释器会尝试将其中一个值转换成另一个类型,然后再进行比较。所以,在这个例子中,JavaScript会将数字10转换成字符串“10”,然后发现它们是相等的,因此打印出“值是相等的”。这符合你的预期,但请记住,JavaScript中的类型强制有时会出现你意想不到的情况,我稍后会详细说明。

2024-05-22 17:56:04 642

原创 JavaScript类型总结与type of运算符

总结一下变量的类型。首先,我们不需要声明变量的类型。当你声明一个变量时,你只需要使用var关键字并给出一个名称,JavaScript就知道这是一个变量,你不需要为该变量分配空间。同一个变量名可以被赋予不同类型的值。我们看到你可以将一个字符串赋给一个变量,该变量原本保存着一个数字;你也可以将一个布尔值赋给一个变量,该变量原本保存着一个字符串。其次,在变量声明中没有类型信息。

2024-05-20 18:48:21 294

原创 JavaScript中undefined和null

之前笔记介绍的三种类型相对来说比较简单,对吧?即使有一些细微差别,它们也很熟悉。这些是你在其他编程语言中都会见到的类型。接下来我要讲的类型在JavaScript中有点独特,可能一开始会觉得有点奇怪,这个类型叫做undefined。为了解释什么是undefined,我需要先解释声明和定义之间的区别。这些术语不仅限于JavaScript,你在其他编程语言中也会见到。那么,什么是声明,什么是定义呢?声明是当你要求编译器或解释器创建一个新的变量并给它命名的过程。

2024-05-20 15:53:49 930

原创 JavaScript的基本数据类型,字符串和布尔值

你可以赋予变量哪些值呢?假设你已经声明了一个变量var a, b, c。你可以给它们赋哪些值呢?有一些语言自带的原始类型。就像任何语言一样,有一些原始类型是开箱即用的。其中一些常见的类型是数字,对吧?数字在大多数编程语言中都是非常常见的类型。还有字符串,它非常常见,用于文本。然后是布尔值,它有true和false两种值。这些都是在很多语言中存在的常见原始类型。现在我们来看看这些类型和其他语言中的区别。我们从数字开始。number是JavaScript中用于存储数字的类型。

2024-05-20 14:39:26 921

原创 我们现在要谈论变量和JavaScript的类型系统。

在任何编程语言中,当你需要保存一个值时,你需要给它一个名字,这个名字就成为一个容器,用来存放这个值。所以假设你想要一个字符串变量,你声明一个变量为字符串类型,然后你可以给它赋一个字符串值。你可以有一个变量,然后给它赋一个值。这只声明了变量,但没有赋值,然后下一行代码使用了这个变量,给它赋值42。即使在这种情况下也是可以的,因为JavaScript不要求知道你可以给变量赋什么值。这里的var是一个关键字,用来声明一个新的变量,然后你给它一个名字。变量的名字在这里是value,然后你给它赋一个值42。

2024-05-20 14:07:04 161

原创 设置我们JavaScript设置的开发环境

开发者工具可以让你查看正在呈现的页面,你可以查看导致页面呈现的HTML,也可以查看一些与之相关的JavaScript,你可以调试JavaScript,并且添加新的JavaScript命令,你可以在浏览器中运行JavaScript代码。所以console是一个全局对象,可供你使用,log是该对象的一个方法。你可以去它的官网或者直接谷歌搜索Firefox,下载安装程序,安装完成后打开应用程序,点击打开,你会看到一个名为“Develop”的选项,点击它,然后点击“Debugger Tools”。

2024-05-20 13:58:14 799

原创 JavaScript简史

现在有不同版本的 ECMAScript,目前最新的规范是 ECMAScript 6。所以我们会讲解 ECMAScript 5 的许多内容,但也会提到 ECMAScript 6 中的一些新概念,并指出它们是新版本的,可能不会在所有浏览器中支持。JavaScript 的一些动机是使其易于使用,易于新手学习,这是该语言的设计目标之一。与被认为是专业语言的 Java 相比,JavaScript 被认为是一种简单的脚本语言,任何人都可以使用。是的,你没听错,是在十天内创建的,然后匆忙推向生产环境,充满了错误。

2024-05-20 13:43:51 792

原创 关于javaScript学习的一些想法

问题是,JavaScript 在语法上与 Java 非常相似,这给了我一种错误的自满感,让我误以为自己已经很了解这门语言,但其实并没有。由于 JavaScript 的语法与 Java 类似,我的思维中有一部分认为我已经知道这门语言,不需要再学习了,这其实导致了我的一些挫败感。我很开心,我觉得,我完成了这个东西,它可以工作,我做完了。我认为,学习语言、理解语言是什么以及语言中的构造和概念,是非常重要的一步,这些在你编写真正的 JavaScript 代码之前都需要完成。我觉得,这部分工作,但那部分不工作。

2024-05-20 13:14:21 294

原创 JavaScript:在浏览器中的运行时环境

如果只有HTML而没有JavaScript,每次加载页面,你得到的都是同样的DOM树和同样的视图。当浏览器得到带有JavaScript的HTML时,也会得到同样的DOM,同样的视图,但然后它会执行JavaScript。你可以在命令行中运行这些命令,但你也可以将这些命令放入一个文件中,然后执行该文件,这样就形成了一个脚本,Shell会执行这个脚本。但如果把这些命令放到一个文件中,形成一个脚本文件,并执行它,你就将这些指令交给了运行时环境,告诉它:“这些是我的指令,这是我的一系列操作步骤,请执行它们。

2024-05-18 14:13:52 739

原创 什么是JavaScript?

这是我从一个名为Mozilla Developer Network(简称MDN)的网站上找到的定义。如果你不熟悉MDN,我会在资源部分介绍它。MDN或Mozilla Developer Network是学习和参考JavaScript的最佳资源之一,当然这是我个人的看法。以下是我从MDN页面提取的定义:JavaScript,通常缩写为JS,是一种轻量级的、解释型的、面向对象的语言,具有一等函数。它作为Web页面的脚本语言而闻名,但也在许多非浏览器环境中使用。

2024-05-18 14:07:55 394

原创 JavaScript 简介导读

JavaScript的诞生有其特定的动机和原因,这些原因实际上影响了语言的设计。了解这些原因是有帮助的,因为当你遇到语言中的某些设计决策和特点时,理解它们背后的原因会让你更容易接受和使用这门语言。最后,我们将总结本单元的内容,并对你在学习和编写JavaScript代码时可能遇到的一些问题提供一些提示。在本篇笔记中,我们将介绍JavaScript的基本概念。通过这些内容的学习,你将对JavaScript有一个全面的了解,并为后续的学习打下坚实的基础。我们将讨论学习JavaScript后你可以做些什么。

2024-05-18 14:03:40 135

原创 JavaScript 开发者指南:入门课程

因此,如果你熟悉C++或Java这样的语言,JavaScript的语法对你来说也会很熟悉,你可以马上适应。我不会讲解对象是什么,但我会告诉你JavaScript中的对象与Java中的对象有何不同。我希望你明白这个道理。我们将探讨JavaScript中的一些独特概念,最后,我将介绍一些资源,帮助你在学习这门语言的过程中进一步理解JavaScript,并且介绍一些你可以采取的下一步行动,以更好地掌握这门语言。所以,如果你是完全的新手,你可能无法从这门课程中获得太多价值,你仍然可以跟着学习,但你可能学的费劲。

2024-05-18 13:59:16 265

原创 七个必备的 Spring Boot 启动项:简化你的应用开发与维护

这对于启动依赖项同样适用,它带来了一系列智能的默认配置,这是任何典型 Spring 应用所需要的东西,这也是为什么它在我们的列表中排名第一。更重要的是,这些 Actuator API 是可扩展的,你可以添加自己的端点,暴露你想要监测和跟踪的信息,使用熟悉的 Spring 编程模型。通过这个启动项,你可以访问 Spring Security 的身份验证和授权功能,包括默认的表单登录页面,尽管它不适合生产环境,但可以扩展,你可以在其基础上构建,尤其是对于构建 API,你可以获得令牌认证。

2024-05-18 13:18:50 547

原创 一名资深前辈从全职开发到自由职业:优缺点及个人经验分享

在固定薪水的工作中也有这种情况,但大多数时候你总是处理同样的项目,不断在现有的基础上构建新功能和维护项目。而作为自由职业者,最酷的事情是你可以从一个项目跳到另一个项目,看到不同的事物。我认为你在新项目中学习最多的是在开始的第一个月,那时你的学习曲线是最陡峭的,之后你仍会学习,但不会那么多,曲线会逐渐变平。让我对自由职业感到不安的是,我必须不断寻找下一个工作机会,不知道它会从哪里来,可能会有一段时间我没有工作。但我特别在寻找不是为了构建下一个大项目,而是维护遗留项目的工作,这类项目相对更难找。

2024-05-17 11:54:52 275

原创 JAVA学习路线

现在让我们把所有的技术术语和行话都移除,从基础开始,在这段视频中,我将为你制定一个基本的学习路径,并规划你的学习过程。一旦你了解了Spring的各种选项,并体验到创建和配置新Spring项目的复杂性,你会发现Spring Boot,它是一种创建新Spring项目的非常简便的方法。在这里,你可以找到数以百计的在线课程,浏览它们的目录,了解你需要深入学习的主题。所以,如果你的最爱技术没有在这里提到,请不要讨厌我,我只是试图提供一个简单的介绍,涵盖一些更流行的选项,而不是全面的介绍。祝你好运,希望这对你有帮助。

2024-05-17 11:38:43 757

原创 介绍AOP

在本篇笔记中,我将讨论面向切面编程(AOP)。面向切面编程是Spring提供的一个功能,我们在之前的笔记中详细介绍了依赖注入。在本部分中,我们将深入探讨面向切面编程。AOP不仅是Spring提供的一个功能,实际上它本身就是一种编程模型。所以在我们开始讲解面向切面编程之前,我想简要介绍一下函数式编程。

2024-05-09 23:42:36 990 1

原创 AIGC会带来新的技术革命吗?如何去拥抱它?

人工智能生成的内容不仅会带来技术革命,而且会带来技术奇点。人工智能现在能够编写自己的软件,并且它们将开始自我改进,这将呈指数级增长。这意味着通用人工智能即将出现。接下来是通用人工智能,比任何人类都聪明得多的人工智能。想象一下,一个人工智能能够通过自我编码来提高自己的智力。这就是导致技术奇点的原因。近期有两种情况:如果人工智能是仁慈的,我们将与人工智能合作,它们将在几秒钟内快速产生新发明和科学突破,无需人工干预,为我们谋福利。如果人工智能不仁慈,结果要么是《黑客帝国》,要么是《终结者》电影。

2024-05-05 23:51:04 327 2

原创 什么是人工智能代理?人工智能代理真的是一个东西并且对解决现实世界的问题有用吗?或者它只是人工智能的炒作?

人工智能代理是设计用于在环境中有目的地行动的软件程序。将它们视为可以感知、学习并采取行动来实现目标的数字助理。自主交互的大型语言模型是人工智能代理的潜在途径。虽然协作可能是有益的,但人工智能代理之间的竞争也可以推动其决策能力的创新。这凸显出即使在机器之间,竞争也可以成为进步的有用工具。人工智能代理是技术领域的强大工具,旨在通过根据环境做出决策来自主执行任务。人工智能代理是能够自主行动以实现其环境中特定目标的系统。

2024-05-04 23:15:21 445

原创 了解依赖项注入

总之,我详细解释了依赖注入的概念以及如何通过使用多态性来实现解耦。首先描述了依赖注入的目的是解耦对象之间的依赖关系,使它们不再相互耦合。然后,通过一个绘图应用程序的例子说明了这一概念。接着,我又介绍了多态性的概念,并通过创建一个Shape接口或基类,让Circle和Triangle对象都继承自该接口或基类,实现了多态性。作者展示了如何在应用程序类中使用多态性,通过设置Shape对象为Circle或Triangle,然后调用Shape的draw方法,实现了对不同对象的统一调用。

2024-05-04 12:06:25 1237

原创 检查JavaScript的一些问题

这些问题导致了JavaScript代码在开发大型应用程序时的可维护性和可靠性方面的挑战。这就是为什么TypeScript应运而生的原因。TypeScript通过添加静态类型检查、类、接口等功能来弥补JavaScript的这些缺陷,从而提高了代码的可读性、可维护性和可靠性。通过在开发过程中提供更多的工具和保证,TypeScript使得开发人员能够更轻松地构建和维护复杂的应用程序。

2024-05-03 15:41:01 975 3

原创 如何预防程序员倦怠:应对工作压力的关键策略

在当今世界,计算机程序员扮演着至关重要的角色,他们的工作是推动现代社会发展的关键力量。总的来说,预防程序员倦怠需要程序员们采取一系列积极的措施,包括合理分配工作任务、保持良好的工作与生活平衡、加强身心健康等。只有这样,他们才能保持良好的工作状态,提高工作效率,为现代社会的发展做出更大的贡献。此外,程序员们还可以通过培养健康的生活方式来增强身心健康,包括定期锻炼、保持良好的饮食习惯和规律的作息时间。同时,他们也应该学会有效地处理工作中的压力和挑战,采用积极的心态来面对工作中的困难和挑战。

2024-05-02 22:50:54 170

原创 学习TypeScript的计划和先决调节

一共是五个部分,让我们从第一个部分开始,简介和设置,了解TypeScript被创建,以及环境配置,然后开始使用TypeScript编写代码,您需要涵盖一些基本功能,从类型开始,类型是TypeScript中非常重要的事,顾名思义TypeScript可以引入类型的概念,这非常方便,我们将使用这些类型从TypeScript开始,然后我们第三部分涵盖了类和接口,这部分是TypeScript为我们提供的大量面向对象编程概念的地方。

2024-05-02 10:06:22 876 4

原创 探索Spring框架:解决Java应用程序开发中的常见挑战

Spring是Java中非常流行的应用程序框架。在本篇文章中,您将了解它的真正含义、它解决的问题是什么以及您可能想要使用它的原因。提示:以下是本篇文章正文内容Spring框架不仅仅是一个核心框架,它是一个完整的生态系统,涵盖了诸多项目和扩展,可以帮助开发人员构建高效、可维护的Java应用程序。通过使用Spring框架,您可以更快地开发应用程序,并减少代码的复杂性。

2024-05-01 23:31:43 959 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除