认证模式之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体系中,而且它也存在密码明文传输安全问题。

上一篇:基于网络拓扑图通过RCMS对网络进行配置


下一篇:Flask系列07--Flask中的CBV, 蓝图的CBV