`
robertliudeqiang
  • 浏览: 123151 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

http认证(一) - Basic 认证

    博客分类:
  • web
阅读更多
文章主要讲如何在tomcat中配置Basic认证以及工作流程:

Tomcat配置:
1 在tomcat的webapps下新建一个目录authen,再建立子目录subdir,下面放一个index.jsp

2 在authen目录下建立WEB-INF目录,下放web.xml文件,内容如下
<security-constraint>
	<web-resource-collection>
		<web-resource-name>
			My App
		</web-resource-name>
		<url-pattern>/subdir/*</url-pattern>
	</web-resource-collection>
	<auth-constraint>
		<role-name>test</role-name>
	</auth-constraint>
</security-constraint>

<login-config>
	<auth-method>BASIC</auth-method>
	<realm-name>My Realm</realm-name>
</login-config>

3 在tomcat的tomcat-users.xml文件中添加一个用户名密码为test,test的用户,角色test。


客户端访问:
访问http://localhost:port/authen/subdir/index.jsp
会弹出对话框提示认证,输入test test可以登录。


工作流程(通过firebug可以查看请求头)
1 客户端先发请求(不知道要认证,头里不包含任何特殊信息)

2 服务器发一个401返回,并含有下面的头
WWW-Authenticate Basic realm="My Realm"


3 客户端认证,含有下面的头
Authorization Basic dGVzdDp0ZXN0
“dGVzdDp0ZXN0”是"test:test"的Base64编码。 (可以通过php函数base64_encode()验证)


缺点:
密码明文传输,非常不安全。


httpclient中的实现
查看org.apache.commons.httpclient.auth包的BasicScheme类

    // Copy from the httpclient source code
    // Omit some codes
    public static String authenticate(UsernamePasswordCredentials credentials, String charset) {

        ...

        StringBuffer buffer = new StringBuffer();
        buffer.append(credentials.getUserName());
        buffer.append(":");
        buffer.append(credentials.getPassword());
        
        return "Basic " + EncodingUtil.getAsciiString(Base64.encodeBase64(EncodingUtil.getBytes(buffer.toString(), charset)));
    }
  • 大小: 12.2 KB
  • 大小: 46 KB
  • 大小: 46.7 KB
分享到:
评论

相关推荐

    elasticsearch-http-basic-1.5.1.jar

    es安全认证工具 es安全认证工具

    instantclient-basic-win32-10.2.0.3-20061115.zip

    总的来说,Oracle Instant Client的"basic"版本提供了一个精简但功能完备的数据库访问环境,尤其适用于那些只需要基础连接功能且对系统资源占用有严格要求的场景。它简化了客户端的部署,提高了开发和运维的效率,是...

    instantclient-basic-linux.x64-19.6.0.0.0dbru.zip

    标题 "instantclient-basic-linux.x64-19.6.0.0.0dbru.zip" 提供的信息表明,这是一个针对64位Linux系统提供的Oracle Instant Client软件包,具体版本为19.6。Oracle Instant Client是Oracle数据库的一个轻量级...

    前端开源库-express-basic-auth

    "express-basic-auth"是这样一个中间件,它实现了HTTP基本认证(Basic Authentication),一种简单的身份验证方案。本文将详细介绍Express基本认证中间件的工作原理、安装、配置以及实际应用。 ### 一、HTTP基本...

    oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

    总结来说,"oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm"是Oracle Instant Client的一个关键组件,为Linux用户提供了一个轻便的数据库访问解决方案,特别适合于需要在远程或独立环境下使用SQL*Plus或...

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

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

    开源WEB框架-Portal-Basic使用手册

    开源WEB框架-Portal-Basic使用手册的知识点可以详细阐述如下: 1. 开源WEB框架-Portal-Basic简介: ...此外,其良好的扩展性和整合能力,配合丰富的文档和社区支持,使Portal-Basic成为了一个值得推荐的开源Web框架。

    前端开源库-lws-basic-auth

    前端开源库`lws-basic-auth`是一个专门用于实现基本身份验证(Basic Authentication)的轻量级解决方案。在Web开发中,安全性是至关重要的,尤其是当涉及到用户数据和服务器资源时。基本身份验证是一种简单但有效的...

    docker-nginx-basic-auth:Nginx-basic-auth的Dockerfile,用于将Docker的自动构建发布到公共Docker Hub注册表

    Nginx基本认证Dockerfile 该存储库包含 -basic-auth的Dockerfile ,用于将的 发布到公共。 基础Docker映像 安装 安装 。 从公共下载 : docker pull igortimoshenko/docker-nginx-basic-auth (或者,您可以从...

    Laravel开发-laravel-basic-project

    在Laravel框架中,`laravel-basic-project`通常是一个初学者或新手开发者为了熟悉Laravel环境和基础结构而创建的简单项目。这个项目基于Laravel 5.6版本,它展示了如何构建一个基本的Web应用程序。Laravel 5.6是该...

    instantclient-basic-nt-12.2.0.1.0

    在本篇中,我们将深入探讨" instantclient-basic-nt-12.2.0.1.0"这一版本,了解其在64位Windows操作系统中的应用,以及如何利用它来实现PL/SQL与Oracle数据库的连接。 1. **Oracle Instant Client的基本概念** ...

    instantclient-basic-windows.x64-12.1.0.2.0-oracle12c.zip

    同时,客户端还提供了身份验证机制,如SYSDBA/SYSOPER权限、操作系统认证、数据库认证以及第三方认证等。 7. **性能优化**:Oracle客户端还提供了高级特性,如SQL Trace、 tkprof等工具,用于诊断和优化SQL语句的...

    http-basic-security eureka-server .rar

    // 启用HTTP Basic认证 } @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser("admin") // 设置用户名 .password("{...

    http-server-basicauth-ssl:用于nodejs的Http服务器,包括Https和basicAuth

    http-server-basicauth-ssl:命令行http服务器 http-server-basicauth-ssl是基于以下内容的简单,零配置命令行安全化Http服务器: HTTP服务器 基本认证 SSL协议 主要目的是拥有与http-server相同的有用工具,但具有...

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

    HTTP Basic Authentication 是一种简单的身份验证机制,它要求客户端在每个请求中都包含一个认证头(Authorization)。在 Basic Auth 中,用户名和密码被组合成一个字符串(例如 "admin:admin"),然后使用 Base64 ...

    instantclient-basic-windows.x64-11.2.0.4.0.rar

    避免在代码或配置文件中明文存储敏感信息,可以使用Oracle Wallet或操作系统级别的认证来增强安全性。 总之,Oracle Instant Client和PL/SQL Developer的组合提供了一种高效且便捷的方式来连接和管理远程Oracle...

    instantclient-basic-windows.x64-12.2.0.1.0

    标题 "instantclient-basic-windows.x64-12.2.0.1.0" 指的是 Oracle Instant Client 的一个特定版本,适用于64位Windows操作系统。Oracle Instant Client 是 Oracle 公司提供的一套轻量级软件包,它允许应用程序在不...

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

    HTTP基本认证(Basic Authentication)是HTTP协议中一种简单的身份验证机制。它要求用户在访问受保护资源时提供用户名和密码。这种认证方式是基于HTTP头部的,通过将用户名和密码编码为Base64字符串并将其放入`...

    spring-android-basic-auth.zip_android_spring_spring auth_spring-

    标题中的"spring-android-basic-auth.zip"表明这是一个关于Spring在Android平台上的基本认证(Basic Authentication)的应用示例。Spring是一个广泛使用的Java开发框架,而Spring Android是Spring为Android平台提供...

    Laravel开发-basic-auth-enforcement

    "Basic-Auth-Enforcement" 是这个过程的核心,它通过 HTTP 的 Basic 认证头进行用户身份验证。下面我们将详细探讨如何在 Laravel 5 中使用中间件强制执行基本身份验证。 1. **中间件的概念** 中间件在 Laravel 中...

Global site tag (gtag.js) - Google Analytics