第 14 章 basic认证
basic
认证是另一个常用的认证方式,与表单认证不同的是,basic认证常用于无状态客户端的验证,比如HttpInvoker或者Web
Service的认证,这种场景的特点是客户端每次访问应用时,都在请求头部携带认证信息,一般就是用户名和密码,因为basic认证会传递明文,所以最
好使用https传输数据。
如果在http中配置了auto-config="true"我们就不用再添加任何配置了,默认
配置中已经包含了Basic认证功能。但是这同时也会激活form-login,因此我们将演示仅有basic验证的场景,为此需要去掉配置文件中的
auto-config="true"。
<http auto-config="true"
>
<http-basic />
<intercept-url pattern="/admin.jsp" access="ROLE_ADMIN" />
<intercept-url pattern="/" access="ROLE_USER" />
</http>
删除了auto-config="true"之后,还要记得添加http-basic标签,这样我们的系统将仅仅使用
basic认证方式来实现用户登录。
现在我们访问系统时,不会再进入之前的登录页面,而是会显示浏览器原生的登录对话框。
登录成功之后,我们可以在HTTP请求头部看到basic验证所需的属性
Authorization。
最后需要注意的是,因为basic认证不使用session,所以无法与rememberMe功用。
下面我们来示范一下如何使用basic认证。假设我们在basic.jsp中需要远程调用
http://localhost:8080/ch104/admin.jsp的内容。这时为了能够通过Spring
Security的权限检测,我们需要在请求的头部加上basic所需的认证信息。
String username = "admin";
String password = "admin";
byte[] token = (username + ":" + password).getBytes("utf-8");
String authorization = "Basic " + new String(Base64.encodeBase64(token), "utf-8");
URL url = new URL("http://localhost:8080/ch104/admin.jsp");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Authorization", authorization);
|
我们先将用
户名和密码拼接成一个字符串,两者之间使用“:”分隔。
然后使用commons-codec的Base64将这个字符串加密。在进行
basic认证的时候Spring Security会使用commons-codec把这段字符串反转成用户名和密码,再进行认证操作。
下
一步为加密后得到的字符串添加一个前缀"Basic ",这样Spring Security就可以通过这个判断客户端是否使用了basic认证。
|
|
将上面生成
的字符串设置到请求头部,名称为“Authorization”。Spring Security会在认证时,获取头部信息进行判断。
|
有
关basic代码可以在/ch104/basic.jsp找到,可以运行ch104,然后访问http://localhost:8080/ch104
/basic.jsp。它会使用上述的代码,通过Spring Security的认证,成功访问到admin.jsp的信息。
实
例在ch104。
分享到:
相关推荐
basic认证.doc 是关于在制造业特别是做外贸的一个欧盟的协议
在HTTP中,基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供以用户名和口令形式的凭证,这篇文章主要介绍了http basic authentication通过post方式访问api示例,大家参考使用吧
这是基于acegi框架实现的basic认证的具体demo,详细的教程可以参考博客地址:http://blog.csdn.net/llhhyy1989/article/details/19708655
Basic认证 Basic认证是一种较为简单的HTTP认证方式,客户端通过明文(Base64编码格式)传输用户名和密码到服务端进行认证,通常需要配合HTTPS来保证信息传输的安全。 1、概述 Basic认证 ①当打开需要认证的页面时,...
一个简单的Restlet开发框架的Basic认证的例子
sas basic 认证练习题 pdf格式的 有兴趣考sas可以试着做做
下面小编就为大家带来一篇浅谈HTTP使用BASIC认证的原理及实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
第三节 暴力破解 - HTTP Basic认证-01
带basic认证的http get协议C#源码,地址为测试地址,获得的数据形式为json。
Windows Phone 7使用HTTP Basic认证连接gsoap编写的Web Service(服务端)
(注意这里使用Basic+空格+加密串) 服务器在收到这样的请求时,到达BasicAuthenticationFilter过滤器,将提取“authorization”的Header值,并使用用于验证用户身份的相同算法Base64进行解码。 解码结果与登录...
第四节 暴力破解 - HTTP Basic认证字典生成(Python)-01
webService添加basic验证,为了WebService的安全,将webservice添加basic验证,用户在调用时需要提供授权信息进行调用
NULL 博文链接:https://weigang-gao.iteye.com/blog/2233843
Java 实现HTTP BasicAuth服务端代码,压缩包为Eclipse工程,导入即可运行
NULL 博文链接:https://weigang-gao.iteye.com/blog/2233841
通过base64加密方式将用户名和密码进行封装,生成basic auth的认证信息,再将该信息塞进请求头里,最后通过认证进行get请求。
使用Spring Security实现HTTP Basic认证 概要 本文介绍通过一个示例来讲解如何启用HTTP Basic认证来保护Web应用。 文章地址:
Basic认证 Basic认证是一种较为简单的HTTP认证方式,客户端通过明文(Base64编码格式)传输用户名和密码到服务端进行认证,通常需要配合HTTPS来保证信息传输的安全。 概述 Digest认证 是一种更加安全的认证形式, 在...
这可能是史上功能最全的Java权限认证框架! Sa-Token 功能一览: 登录认证 —— 单端登录、多端登录、同端互斥登录、七天内免登录 权限认证 —— 权限认证、...Basic认证 —— 一行代码接入 Http Basic 认证 ......