认证模式之Form模式

上面介绍的两种模式都属于HTTP协议规范范畴,由于它的规范使得很多东西无法自定义,例如登录窗口、错误展示页面。所以需要另外一种模式提供更加灵活的认证,也就是基于Form的认证模式。

Form模式的认证流程如下:

①浏览器发送http报文请求一个受保护的资源。

②服务端的web容器判断此uri为受保护资源,于是将请求重定向到自定义的登陆页面上,例如login.html页面,可以自定义登陆页面的样式,但要遵守的约定是表单的action必须以j_security_check结尾,即<form action='xxxxxx/j_security_check' method='POST'>。用户名和密码输入框元素的name必须为'j_username' 和'j_password'。

③浏览器展示自定义的登陆页面让用户输入用户名和密码,然后提交表单。

④服务端web容器获取表单的用户名和密码,匹配此用户名与密码是否正确,是否有相应资源的权限,如果认证成功则返回相关资源,否则再执行②,重新进行认证。

⑤后面在同个会话期间的访问都不用再进行认证,因为认证的结果已经保存在服务端的session里面。     

Form模式跳出了HTTP规范提供了自定义的更加灵活的认证模式,但由于Form模式属于J2EE范畴,一般出现在java体系中,而且它也存在密码明文传输安全问题。

========广告时间========鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。[为什么写《Tomcat内核设计剖析》](http://blog.csdn.net/wangyangzhizhou/article/details/74080321)=========================欢迎关注:![这里写图片描述](http://img.blog.csdn.net/20170509102539658?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3lhbmd6aGl6aG91/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

========广告时间========鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。[为什么写《Tomcat内核设计剖析》](http://blog.csdn.net/wangyangzhizhou/article/details/74080321)=========================欢迎关注:![这里写图片描述](http://img.blog.csdn.net/20170509102539658?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3lhbmd6aGl6aG91/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

时间: 2024-10-22 22:16:51

认证模式之Form模式的相关文章

认证模式之Digest模式

TTP协议规范的另一种认证模式是Digest模式,在HTTP1.1时被提出来,它主要是为了解决Basic模式安全问题,用于替代原来的Basic认证模式,Digest认证也是采用challenge/response认证模式,基本的认证流程比较类似,整个过程如下: ①浏览器发送http报文请求一个受保护的资源. ②服务端的web容器将http响应报文的响应码设为401,响应头部比Basic模式复杂,WWW-Authenticate: Digest realm="myTomcat",qop=

JS魔法堂:浏览器模式和文档模式怎么玩?

一.前言   从IE8开始引入了文档兼容模式的概念,作为开发人员的我们可以在开发人员工具中通过"浏览器模式"和"文档模式"(IE11开始改为"浏览器模式"改成 更贴切的"用户代理字符串")品味一番,它的出现极大地方便了苦逼的前端攻城狮们适配各版本的IE,但jser们也不能完全信任它,因为它只是提供尽可能 的文档模式模拟而已.   本篇大部分内容来源于官方解说:http://msdn.microsoft.com/library/

如何让你的传输更安全——NIO模式和BIO模式实现SSL协议通信

对于SSL/TLS协议,如果要每个开发者都自己去实现显然会带来不必要的麻烦,正是为了解决这个问题Java为广大开发者提供了Java安全套接字扩展--JSSE,它包含了实现Internet安全通信的一系列包的集合,是SSL和TLS的纯Java实现,同时它是一个开放的标准,每个公司都可以自己实现JSSE,通过它可以透明地提供数据加密.服务器认证.信息完整性等功能,就像使用普通的套接字一样使用安全套接字,大大减轻了开发者的负担,使开发者可以很轻松将SSL协议整合到程序中,并且JSSE能将安全隐患降到了

IIS7 应用程序池的 托管管道模式与集成模式小结_基础应用

IIS 7 托管管道模式 经典模式(Classic) 集成模式(Integrated) 分析与理解 IIS 7.0 支持两种管道模式:一种是IIS 7.0最新提供的集成管道模式,另一种是经典管道模式,经典管道模式是由先前版本的IIS提供的. 我们可以通过应用程序池设置管道模式,这项功能对IIS管理员尤其有用,因为这样既可以令一台服务器仅运行一种模式,也可以令两种模式同时运行于一台服务器上. 上述两种管道模式使用的web.config文件存在重大的区别,许多在经典管道模式下能够正常工作的web.c

360随身wifi无线网卡模式与wifi模式换切换方法

  对于没有无线网卡的台式机来说,想要接收并连接无线wifi网络,就需要使用wifi接收设备来获取无线信号,而在我们常见的360随身WIFI,小度WIFI,腾讯全民随身WIFI,小米随身WIFI中,目前使用人数最多的要属360随身wifi了,在360随身wifi中,用户不仅能够将360wifi当作无线wifi发射器,同时还能够接收来自其它设备的wifi信号,那么如何将360随身wifi切换为无线网卡模式呢?下面看小编为您带来的详细操作方法.   操作方法 1.点击360随身wifi悬浮窗口,如图

javascript创建对象之函数构造模式和原型模式结合使用(四)

创建自定义类型的常见方式就是组合使用构造函数模式与原型模式一起使用. 构造函数模式用于定义实例对象的特有的部分(属性和方法),原型模式用于定义共享的部分. 这样最大限度的节省了内存的开销. function Human(name, sex) {             this.name = name;             this.sex = sex;             this.getWife=function(){//娶老婆                 if (this.se

Javascript教程:组合使用构造函数模式和原型模式

文章简介:创建自定义类型的常见方式,就是组合使用构造函数模式与原型模式.构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性.结果,每个实例都会有自己的一份实例属性的副本.但同时又共享着对方法的引用,最大限度的节省了内存.另外这种模式还支持向构造函 创建自定义类型的常见方式,就是组合使用构造函数模式与原型模式.构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性.结果,每个实例都会有自己的一份实例属性的副本.但同时又共享着对方法的引用,最大限度的节省了内存.另外这种模式还

《java与模式》----创建模式系列工厂模式、单态模式精讲

创建 创建模式-----Creation  Pattern 创建模式是对类实例化过程的抽象. 一些系统在创建对象的时候需要动态的决定怎样创建对象.创建哪些对象.以及如何组合,表示这些对象.创建模式描述了怎样构造和封装这些动态的决定. 创建模式又分类的创建模式和对象的创建模式. l         类的创建模式:类的创建模式使用继承关系,把类的创建延迟到子类,从而封装了客户端将得到哪些具体类的信息,并隐藏了这些类的实例是如何被创建的和放在一起的.. l         对象的创建模式:对象的创建模

设计模式学习——建造者模式(生成器模式)

所有配套代码均在github上:https://github.com/ZHONGHuanGit/DesignPattern 简介: 建造者模式也叫做生成器模式,定义为:封装一个产品的构造过程,并且按此步骤构造. 建造者模式(生成器模式)属于创建类模式,和工厂模式相比,你会觉得有点类似,但是有区别之处.不过,建议在看下去之前,得明白三个工厂模式,如果你记得不太清楚了,可以看这里,简单工厂,工厂方法,抽象工厂. UML类图: 看一下uml类图.这一部分,如果不清楚,可以先看下面的场景部分,再回过头来