`
grandboy
  • 浏览: 125214 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

BASIC认证方式的“麻烦事”

阅读更多
BASIC方式很简单,而且也符合REST的无状态理论。但现在碰到一个新问题,就是我不想在那个很丑陋单调的对话框里输入用户名和密码,于是我搞了一个 Form来提交用户名和密码,当然要使用BASE64造成和那个对话框输入的一样的Authorization的Header(Basic xxxxxxxxxx), 这些都很简单,也能正常通过认证。但是由于我没有在那个对话框里输入用户名和密码,所以浏览器并不知道我的用户名和密码是什么,从而造成我这种方式不能让浏览器在后续的请求中自动带上我造的那个Authorization头,这样麻烦就来了,我每次都自己造那个头,然后set到请求的Header里。而这样做是非常不方便。各位看谁有办法解决这个问题?也不知道浏览器是怎么存储我在那个对话框里输入的用户名和密码的?

因为REST提倡传输credential, 而不是SESSIONID. 因为通常是把用户信息存储在Session里的,但这是一种有状态方式,不是RESTful。 RESTful框架提倡在Request里传输Credential, 而BASIC和DIGEST(Digest认证方式好像也不是真正无状态,我忘记具体是怎么样的了,他好像要在服务器存储一个Nonce。 并且不是所有浏览器支持的)两种认证方法最适合了。而BASIC方法最简便,但是如果安全传输Credential就成了第二个问题。


继续研究。。。。



分享到:
评论
1 楼 wingwing 2009-09-17  
你可以在cookie里缓存那个Header的session ID。一般弹出对话框的就是basic或者digest,Form会返回一个输入用户名和密码的页面。

相关推荐

    http basic authentication通过post方式访问api示例分享 basic认证示例

    要使用基本认证访问API,客户端需要在每个请求中添加`Authorization`头部,其值的格式为`Basic base64-encoded(username:password)`。首先,将用户名和密码连接成`username:password`字符串,然后对这个字符串进行...

    acegi basic认证具体demo

    Basic认证是一种客户端-服务器认证方式,用户凭据(用户名和密码)以Base64编码的形式包含在请求头的Authorization字段中。这种方式虽然简单,但不安全,因为数据在网络中以明文传输,所以通常会配合HTTPS来确保通信...

    RestTemplate如何通过HTTP Basic Auth认证.docx

    通过这种方式,我们可以在不修改原有代码的情况下,为 RestTemplate 添加全局的 HTTP Basic Auth 支持,提高了代码的可维护性和整洁度。 总之,使用 RestTemplate 进行 HTTP Basic Auth 认证,主要涉及 Base64 编码...

    Basic Auth认证get请求的java代码片段

    通过base64加密方式将用户名和密码进行封装,生成basic auth的认证信息,再将该信息塞进请求头里,最后通过认证进行get请求。

    webService添加basic验证

    3. **指定认证方式**:在`<login-config>`元素中设置`<auth-method>`为`BASIC`,并定义`<realm-name>`来标识验证区域。 4. **定义角色**:通过`<security-role>`元素定义角色名称,例如`bank_member`。 5. **完整...

    BasicAuth的Java服务端实现

    **标题解析:** "BasicAuth的Java服务端实现" 指的是使用Java语言在服务端实现HTTP的基本认证(Basic Authentication)机制。这种认证方式是HTTP协议标准的一部分,用于在网络服务器上验证用户身份。 **基本认证...

    aceig构建基于数据库的用户信息认证Http Basic认证(2)

    Acegi Security框架允许开发者轻松地集成这种认证方式。 首先,我们需要配置Acegi Security。在Spring配置文件中,我们需要定义一个`AuthenticationProvider`,这个组件负责验证用户的凭证。通常,我们会实现`...

    aceig构建基于内存的用户信息认证之Http Basic认证(1)

    在Acegi Security的配置文件中,需要指定使用Basic认证方式,并关联自定义的`AuthenticationProvider`和`UserDetailsService`。此外,还需要配置哪些URL需要进行认证,以及未通过认证时的行为。 6. 安全拦截器: ...

    Web应用安全:体验Basic认证.pptx

    1. **认证流程**:当用户尝试访问受保护的Web资源时,如果未提供有效的身份验证信息,服务器会返回一个401 Unauthorized响应,同时在Response Header中设置`WWW-Authenticate`字段,指示客户端采用Basic认证方式。...

    Restlet开发的Basic认证

    这种认证方式是透明的,因为服务器会自动弹出登录对话框来请求凭证,且这些凭证通过Base64编码的方式嵌入在HTTP请求头的Authorization字段中。 在Restlet框架中,实现基本认证主要涉及到以下几个步骤: 1. **创建...

    浅谈HTTP使用BASIC认证的原理及实现方法

    2. 如果服务器发现请求未经过认证,会返回401响应,包含`WWW-Authenticate`头,指明认证方式(这里是BASIC)和认证范围(realm)。 3. 浏览器或其他HTTP客户端会弹出对话框,要求用户输入用户名和密码。 4. 用户输入...

    Tomcat Basic Form认证实例!

    我们将会看到两种认证方式:Basic认证和Form认证,并结合配置文件进行实例讲解。 首先,让我们理解这两种认证模式: 1. **Basic认证**:这是一种简单的HTTP认证方式,用户凭据(用户名和密码)通过Base64编码的...

    2.CXF安全访问之Http Basic Auth(一)

    在基本认证中,这个头值通常是"Basic"。 CXF框架允许开发者方便地在服务端和客户端启用HTTP基本认证。在服务端,可以通过在CXF的配置文件中设置来启用此功能。例如,在Spring配置中,你可以添加以下代码: ```xml ...

    C#进阶系列 WebApi身份认证解决方案推荐:Basic基础认证

    C#的WebApi提供了多种身份验证方式,其中Basic认证是一种简单但实用的策略。本文将详细介绍Basic认证的原理及实现方法。 一、为什么需要身份认证 WebApi服务若无身份认证,任何知道接口URL的人都能通过HTTP请求...

    swagger开启身份认证

    通过本文介绍的方法,可以在Spring Boot项目中为Swagger界面添加Basic认证,从而提升API的安全性。虽然这里主要介绍了如何使用Swagger Bootstrap UI来实现这一目标,但在实际项目中,还可以考虑其他方法和技术栈来...

    Windows Phone 7使用HTTP Basic认证连接gsoap编写的Web Service(服务端)

    你可以参考这些代码来理解gSOAP的工作方式,以及如何在服务器端设置HTTP Basic认证。 总的来说,Windows Phone 7上的应用通过HTTP Basic认证与gSOAP服务通信涉及到对网络请求的处理、认证头的设置以及XML序列化和反...

    第三节 暴力破解 - HTTP Basic认证-01

    第三节 暴力破解 - HTTP Basic认证-01

    webservice认证和调用

    1. **基本认证(Basic Authentication)**:这是最简单的认证方式,客户端发送用户名和密码的Base64编码给服务器。尽管简单,但安全性较低,因为信息可能会在网络中被截取。 2. **摘要认证(Digest Authentication...

    axis2客户端调用服务端,带用户身份认证

    Axis2提供了一种高效、灵活且可扩展的方式来实现服务端和客户端的服务调用。当涉及到“axis2客户端调用服务端,带用户身份认证”时,我们主要关注的是如何在 Axis2 客户端中添加安全机制,确保只有经过验证的用户...

    老版BASIC软件:F-BASIC

    **F-BASIC编程语言概述** F-BASIC是早期个人计算机时代流行的一种BASIC(Beginner's All-purpose Symbolic Instruction Code)编程语言的版本。BASIC起源于1964年,由美国达特茅斯学院的约翰·科克和汤姆·范·瓦伦...

Global site tag (gtag.js) - Google Analytics