HTTP安全认证
来源:互联网 发布:浩方对战平台mac版本 编辑:程序博客网 时间:2024/05/18 22:46
HTTP安全认证
前言:对于基于http协议的通讯来说,http的安全认证是必不可少的一部分知识。
一、基本认证
基本身份验证它提供了一个方法来解决这个问题,虽然不是很安全。基本身份验证,客户端的每个请求发送Base64编码凭据,使用HTTP[授权]头。这意味着每个请求独立于其他请求和服务器可能/不维护客户端,这对可扩展性是非常好的。
下面示出的是准备标头的样本代码。
String plainClientCredentials=”myusername:mypassword”;
String base64ClientCredentials = new String(Base64.encodeBase64(plainClientCredentials.getBytes()));
HttpHeaders headers = getHeaders(); headers.add("Authorization", "Basic " + base64ClientCredentials);
基本身份验证和Spring Security
有两个步骤,就可以启用基本身份验证在Spring Security配置中。
1. 配置httpBasic : 配置HTTP基本身份验证。 [基于HTTP的XML]
- 配置有BasicAuthenticationEntryYiibai认证入口点 : 如果验证失败[无效/缺少凭据],这个切入点将被触发。 这是非常重要的,因为我们不想重定向到身份验证失败的登录页面[Spring Security的默认行为] ,因为这里我们没有一个登录页面。
二、什么是基本认证
1.概念:基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。
把 “用户名+冒号+密码”用BASE64算法加密后的字符串放在http request 中的header Authorization中发送给服务端, 这种方式叫HTTP基本认证(Basic Authentication)
2.优缺点:
HTTP基本认证的优点
HTTP基本认证,简单明了。Rest API 就是经常使用基本认证的。
每次都要进行认证
http协议是无状态的, 同一个客户端对 服务器的每个请求都要求认证。
HTTP基本认证和HTTPS
把 “用户名+冒号+密码” 用BASE64加密后的string虽然用肉眼看不出来, 但用程序很容易解密,上图可以看到Fiddler就直接给解密了。 所以这样的http request在网络上,如果用HTTP传输是很不安全的。 一般都是会用HTTPS传输,HTTPS是加密的,,所以比较安全。
三、http认证方式
1.基本认证 Basic
2.摘要认证:Digest
3.Form形式:ajax交互认证。
4.SSL
HTTP基本认证(HTTP Basic authentication)和HTTP摘要认证(HTTP Digest authentication)。
此外常用的还有NTLM、SPNEGO(HTTP协商认证,HTTP Negotiate authentication,是其一种)和Kerberos认证方式
public final class AuthPolicy {
public static final String NTLM = “NTLM”;
public static final String DIGEST = “Digest”;
public static final String BASIC = “Basic”;
public static final String SPNEGO = “negotiate”;
public static final String KERBEROS = “Kerberos”;
private AuthPolicy() {}
}
四、Spring中实现
1.web.xml中配置过滤器
springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
<filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
2.配置spring-security.xml文件:配置拦击的url和认证的用户和密码(加密方式或者不配置)
参考文档
http://dreamzhong.iteye.com/blog/1134374
- HTTP安全认证
- 基本的安全和HTTP认证
- 基于HTTP的基本安全认证机制
- Ios9下访问http:// 安全认证
- HTTP的识别,认证与安全
- Node.js实践HTTP安全认证之一~~基本认证
- WebApi接口安全认证——HTTP之摘要认证
- OAuth认证原理及http下的密码安全
- 【HTTP权威指南】笔记之三,识别、认证与安全
- 安全认证
- 安全认证
- 安全认证
- Node.js实践HTTP安全认证之二~~摘要认证(理论)
- Node.js实践HTTP安全认证之三~~摘要认证(实践)
- HTTP认证
- HTTP认证
- HTTP认证
- HTTP认证
- Android-真机应用安装失败原因
- Lucas定理推导过程(全网最全,哈哈哈哈)
- 解决myeclipse里面git的pull操作问题
- java错题集
- 【笨鸟先飞】Java重新学习日记1---符号与数据
- HTTP安全认证
- n!后面有多少个0
- Jmeter 和AB的比较
- Git学习笔记1
- hdoj2002_计算球体积
- 浏览器访问项目,但无法加载图片的可能原因
- c语言的一些小的知识点 酒馆浪人的博客
- swiper.min.js插件
- 如何写一个前端组件-以bootstrap-tab为例