当前位置: 首页 > news >正文

哪个公司的室内设计公司seo教程免费

哪个公司的室内设计公司,seo教程免费,人力资源公司注册,wordpress主题之家一.简介 这篇文章来学习下security的认证方式其中的HTTP基本认证。 二.Spring Security的认证方式 2.1什么是认证 认证: 就是用来判断系统中是否存在某用户,并判断该用户的身份是否合法的过程,解决的其实是用户登录的问题。认证的存在,是…

一.简介

这篇文章来学习下security的认证方式其中的HTTP基本认证。

二.Spring Security的认证方式

2.1什么是认证

认证:
就是用来判断系统中是否存在某用户,并判断该用户的身份是否合法的过程,解决的其实是用户登录的问题。认证的存在,是为了保护系统中的隐私数据与资源,只有合法的用户才可以访问系统中的资源。

2.2认证的方式

在Spring Security中,常见的认证方式可以分为HTTP层面和表单层面,常见的认证方式如下:

  1. HTTP基本认证;
  2. Form表单认证
  3. HTTP摘要认证;

这篇文章先讲HTTP基本认证

三. HTTP基本认证

3.1HTTP基本认证概念

在Spring Security 4.x版本中,默认采用的登录方式是Http基本认证,该方式会弹出一个对话框,要求用户输入用户名和密码。在每次进行基本认证请求时,都会在Authorization请求头中利用Base64对 “用户:密码” 字符串进行编码。这种方式并不安全,并不适合在Web项目中使用,但它是一些现代主流认证的基础,而且在Spring Security的OAuth中,内部认证的默认方式就是用的Http基本认证。

3.2HTTP基本认证核心API

在基本认证时,系统中所涉及到的各种核心API及其执行流程,在这篇文章中,我们先对这些有基本了解即可。
在这里插入图片描述
简单的执行流程如下:

Filter->构造Token->AuthenticationManager->转给Provider处理->认证处理成功后续操作或者不通过抛异常

3.3HTTP基本认证步骤(重点)

HTTP基本认证是在RFC2616标准中定义的一种认证模式,它以一种很简单的方式与用户进行交互。HTTP基本认证可以分为如下4个步骤:

  1. 客户端首先发起一个未携带认证信息的请求;
  2. 然后服务器端返回一个401 Unauthorized的响应信息,并在WWW-Authentication头部中说明认证形式:当进行HTTP基本认证时,WWW-Authentication会被设置为Basic realm=“被保护的页面”;
  3. 接下来客户端会收到这个401 Unauthorized响应信息,并弹出一个对话框,询问用户名和密码。当用户输入后,客户端会将用户名和密码使用冒号进行拼接并用Base64编码,然后将其放入到请求的Authorization头部并发送给服务器;
  4. 最后服务器端对客户端发来的信息进行解码得到用户名和密码,并对该信息进行校验判断是否正确,最终给客户端返回响应内容。

3.4HTTP基本认证的弊端

HTTP基本认证是一种无状态的认证方式,与表单认证相比,HTTP基本认证是一种基于HTTP层面的认证方式,无法携带Session信息,也就无法实现Remember-Me功能。另外,用户名和密码在传递时仅做了一次简单的Base64编码,几乎等同于以明文传输,极易被进行密码窃听和重放攻击。所以在实际开发中,很少会使用这种认证方式来进行安全校验。

接下来,就用代码来实现下HTTP基本认证的功能。

四. 创建SpringSecurity项目

参考之前的文章,这边不做叙述。

五.代码实现

5.1创建SecurityConfig配置类

创建SecurityConfig类,继承自WebSecurityConfigurerAdapter父类,代码如下:

 
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {//1.配置基本认证方式http.authorizeRequests()//对任意请求都进行认证.anyRequest().authenticated().and()//开启basic认证.httpBasic();}}

这段代码中httpBasic()方法,就是用来开启基本认证的,而且默认采用的就是基本认证!

5.2创建web接口

HelloController类的代码如下:


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@GetMapping("/hello")public String hello() {return "德玛西亚";}}

5.3yml配置文件

创建一个application.yml配置文件,配置如下:

spring:security:user:name: demaxiyapassword: 123

四.功能验证

4.1启动项目

接着把项目启动起来,打开浏览器及调试窗口,然后访问/hello接口,这时候就可以看到浏览器中弹出了一个登陆窗口,截图如下:
在这里插入图片描述
提示输入自己的用户名和密码,认证成功后,即可访问自己的web接口。

五. Basic认证详解

对上面的认证过程进行详细的分析。

5.1Basic Authorization

此时我们在自己的浏览器调试窗口中,查看响应头,可以看到WWW-Authenticate认证信息:

WWW-Authenticate:Basic realm=“Realm”,截图如下:
在这里插入图片描述

5.1.1各响应信息含义如下

  1. WWW-Authenticate: 表示服务器告知浏览器进行代理认证工作。
  2. Basic: 表示认证类型为Basic认证。
  3. realm=“Realm”: 表示认证域名为Realm域。

5.1.2 realm的概念

realm=“Realm”: 指认证域名为Realm,HttpBasic默认的realm名为Realm。在未认证用户请求不同的接口时,后台会根据分配给该接口的域,响应不同的realm名称,并且用不同的用户名/密码进行认证。所以用户每请求一个新的Realm的url,都会弹框要求使用新的Realm的用户名/密码进行认证,就好比不同的角色登录只能请求属于该角色的url。

5.2基本认证过程

此时的响应码为401,如下图所示:
在这里插入图片描述
根据401和以上响应头信息,浏览器会弹出一个对话框,要求输入 用户名/密码,Basic认证会将其拼接成 “用户名:密码” 格式,中间是一个冒号,并利用Base64编码成加密字符串xxx;然后在请求头中附加 Authorization: Basic xxx 信息,发送给后台认证;后台需要利用Base64来进行解码xxx,得到用户名和密码,再校验 用户名:密码 信息。

  1. 如果认证错误,浏览器会保持弹框;
  2. 如果认证成功,浏览器会缓存有效的Base64编码,在之后的请求中,浏览器都会在请求头中添加该有效编码。

以上就是HTTP基本认证的内部执行过程。
在这里插入图片描述

5.3注销Basic认证

在成功认证之后,Basic认证会把Authorization认证信息缓存在浏览器中一段时间,之后每次请求接口时都会自动带上,所以直到 用户关闭浏览器才会销毁认证信息,也就是说我们无法在服务端进行有效的注销。

不过在请求注销时,前端也可以手动 在请求头配置一个错误的Authorization,或者在浏览器的命令行执行 document.execuCommand(“ClearAuthenticationCache”)方法 来清空认证信息,但该方式对Chrome浏览器无效。我们在调试基本认证时,可以直接开启无痕模式,避免很多因为缓存造成的问题。

http://www.wooajung.com/news/360.html

相关文章:

  • 适合做设计公司的名字搜索引擎优化
  • 微信公众号商城骗局如何刷seo关键词排名
  • 阿里云网站商城建设广告推广免费平台
  • 汕头市企业网站建设品牌常用的搜索引擎有哪些
  • php学多久可以做网站职业培训机构
  • 北京微网站建设设计服务网站底部友情链接代码
  • 设计iphone手机网站微商引流一般用什么软件
  • H5网站建设报价多少哪里有网络推广
  • wordpress theme best网站搜索关键词优化
  • seo网站地图百度竞价关键词价格查询工具
  • 赣州市建设工程造价管理网站软文广告是什么
  • 济宁网站建设(如何去做网络营销
  • 开发一个网站多少钱?百度网站联系方式
  • 网站 维护费用关键词诊断优化全部关键词
  • 做公司网站开发的公司seo网站排名查询
  • 东莞市卫生健康局搜索引擎优化分析
  • 广州app开发定制公司西安网站建设优化
  • 做试题的网站软文广告示范
  • 衡阳网站排名优化网页设计主要做什么
  • 做女装代理需要自建网站么seo助力网站转化率提升
  • 网站开发研究手段有哪些百度联系方式人工客服
  • 网站建设与维护实训百度网站收录提交
  • 动易官方网站建站公司
  • wordpress多单页山西搜索引擎优化
  • 昌吉网站建设江苏关键词推广seo
  • 门户网站建设工作讲话windows永久禁止更新
  • 莱芜企业网站建设公司seo关键词排名点击工具
  • 武汉网站排名哪家公司好来宾网站seo
  • 纯静态企业网站怎么学seo基础
  • 制作网页教程的注意事项网站优化seo