当前位置: 首页 > 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.shuangfujiaoyu.com/news/48429.html

相关文章:

  • 做360手机网站优化餐饮营销策划方案
  • 网站如何设置404页面seo技术教学视频
  • 妈妈一直做的网站农产品网络营销方案
  • 网站建设gxjzdrj如何自己建一个网站
  • 自己做的网站显示iis7百度手机助手app
  • 加强农业网站建设真正免费的网站建站平
  • 怎么判断网站是否被收录网站推广方法
  • 仙桃网站设计腾讯企点app下载安装
  • 纯div css做网站简洁版站长工具黄
  • 怎么欣赏一个网站设计图aso优化师
  • 导购网站 转化率整合营销的案例
  • 阻止网站查到访问者ip计算机培训班培训费用
  • 网页设计培训心得体会seo工具包
  • 户外平台设计seo最新
  • 旅游网站建设的概念在线培训平台哪家好
  • 作一手房用什么做网站如何注册域名网站
  • 注册好网站以后怎么做深圳外贸网络推广渠道
  • 做网站新闻编辑十大流量平台
  • 网站轮播图的按钮怎么做的营销软文推广平台
  • 传奇sf网站怎么做百度网站下载安装
  • 如何开发手机版网站qq营销软件
  • jsp网站开发参考文献官网seo优化找哪家做
  • 淮南网站制作公司营销型网站有哪些平台
  • wordpress企业网站 教程免费有效的推广平台
  • 马鞍山住房建设委员会网站关键词优化哪家好
  • 去哪里找做网站 的客户百度商家入驻怎么做
  • 网站案例比较多的公司新闻博客软文自助推广
  • 电商网站设计公司可找亿企邦搜索引擎优化名词解释
  • 网站建设与百度推广海南网站制作公司
  • vs2010如何做网站北京百度公司地址在哪里