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

缓存用户名密码信息

 
阅读更多
web项目的用户验证信息可以存放在session中,访问下个页面的时候会先去session中查找判断。但如果是另一个app应用程序通过httpclient进来的话无法使用session来保存信息 (没有cookie), 这时每次请求都需要验证用户名密码,效率低。

可以新建一个Map的static成员变量, app第一次验证通过后将用户名密码保存在里面,再次进来的话只需要对比下Map中的数据就ok, 不需要再调用LDAP了。

需要对这Map对象加一层包装, 增加超时cleanup的功能, 隔一段时间会清理次。 依靠getItem时触发。 这个估计就是ehcache的原理了。

这里用到了 ConcurrentHashMap,由于是static的变量,会有多线程问题。
ConcurrentHashMap 的原理和Vector不一样, 不是用synchronized来加锁,
而是用segment,锁住一段空间来做。

以下是使用代码
附件中是CoreTimeBasedMap类

	private static final int CACHE_DURATION = 1000 * 60 * 60 * 4;
	private static CoreTimeBasedMap authenticationCache = new CoreTimeBasedMap(
			CACHE_DURATION);
private static boolean authenticateAgainstCache(String dn, String password) {
		if (dn == null || password == null) {
			return false;
		}

		if (authenticationCache.get(dn) != null) {
			if (authenticationCache.get(dn).equals(password)) {
				return true;
			}
			authenticationCache.remove(dn);
		}
		return false;
	}
分享到:
评论

相关推荐

    WPF将用户名和密码加密保存在文件当中

    在Windows Presentation Foundation(WPF)应用中,为了保护用户的敏感信息,如用户名和密码,开发者通常会选择将这些数据加密后存储在本地。本教程将详细解释如何在WPF客户端实现这个功能,涉及到的主要知识点包括...

    Java Web登录自动填入用户名密码

    总的来说,实现“Java Web登录自动填入用户名密码”功能需要结合前端页面、后端逻辑和浏览器的Cookie机制。在设计时,不仅要关注功能实现,还要考虑安全性与用户体验。通过学习和实践,开发者可以更好地掌握Java Web...

    C# 已知用户名、密码打开共享文件夹

    1. **NetworkCredential类**:这是C#中用于存储用户名、密码和域信息的对象。创建一个NetworkCredential实例,可以指定连接到共享文件夹所需的用户名和密码。例如: ```csharp var credential = new ...

    彻底删除访问共享文件夹后缓存的用户名和密码包括保存的凭据

    2、如果不点击保存用户名和密码,后面想以另外的用户名和密码访问此共享文件夹,一般需要重启电脑才可以,运行...运行此工具可以及时删除用户名密码。4、网络上类似工具清除都不太彻底,此工具目前应该是删除最为彻底。

    记住用户名密码完整实例

    在Android开发中,实现“记住用户名密码”功能是一项常见的需求,它能提升用户体验,让用户在下次登录时无需再次输入账号信息。本实例将详细介绍如何在Android应用中实现这一功能。 首先,我们需要理解“记住用户名...

    QT登录界面,添加记住密码和用户名功能

    在实现记住密码和用户名的功能时,我们需要存储这些信息。一种常见的做法是将数据存储在配置文件中,例如这里的`login.ini`。我们可以使用QT的`QSettings`类来读写配置文件。`QSettings`提供了方便的方法来管理键值...

    svn认证失败,用户名密码修改巧方法

    这通常是由于输入了错误的用户名或密码,或者SVN客户端缓存的凭证已过期或不再有效导致的。本篇文章将深入探讨这个问题,并提供一系列解决此问题的巧妙方法。 首先,了解SVN认证的基本流程是至关重要的。当您尝试...

    MyEclipse下修改SVN用户名密码

    如果上述方法无效,可能是由于MyEclipse缓存了旧的用户名和密码。这时,可以尝试清理SVN的认证缓存。在“SVN Authentication Data”界面,选择“Clear”按钮,清除所有已保存的凭证。然后关闭并重新打开MyEclipse,...

    svn重新设置用户名和密码

    2. **清除密码缓存:** 找到名为`svn.simple`的文件,它是用Base64编码的。删除或重命名此文件,svn将在下次尝试访问仓库时提示你输入新的凭证。 3. **重新认证:** 使用命令行工具`svn info`或通过图形界面访问你...

    获取IE用户名密码

    在IT安全领域,获取IE(Internet Explorer)的用户名和密码是一项重要的任务,这通常涉及到浏览器缓存、数据存储以及权限管理。以下是对标题和描述中所提及知识点的详细解释: 1. **用户名与密码**:在互联网环境中...

    Windows 清除缓存密码

    在Windows中,密码缓存主要存在于凭据管理器(Credential Manager)中,它存储了用户的登录凭据,包括用户名、密码和证书。这些凭据可能来自网站、网络资源或各种应用程序。清除缓存密码的目的是保护用户信息的安全...

    用户名密码提交到网页上的登录页

    "用户名密码提交到网页上的登录页"这个主题涉及到Web开发中的表单处理、数据传输以及用户认证等核心概念。以下是对这些知识点的详细说明: 1. **HTML表单(HTML Forms)**:登录页面通常由HTML表单构建,它包含`...

    抓取IE,火狐,遨游和谷歌浏览器缓存密码的工具(博客)

    标题中的“抓取IE,火狐,遨游和谷歌浏览器缓存密码的工具”指的是针对这四个主流...总的来说,抓取浏览器缓存密码的工具有其特定用途,但用户应始终关注信息安全,避免滥用此类工具,以确保网络活动的隐私和安全。

    mysql8的配置文件,包含端口 缓存配置

    mysql8的安装配置文件 包含端口 缓存 用户名密码的配置

    检验用户名、密码、字符编码、页面缓存----Filter的基本使用

    在Web应用中,为了保证安全性,通常需要验证用户的登录信息,包括用户名和密码。Filter可以在此过程中扮演关键角色。我们可以在doFilter方法中拦截请求,检查请求参数中的用户名和密码是否匹配预设的验证规则。例如...

    lotus domino BS开发ajax判断用户名密码正确

    总结起来,这个示例展示了如何在Lotus Domino BS开发中使用Ajax结合JavaScript和LotusScript进行用户名密码验证,以及在后端如何处理这些请求。开发者需要熟悉LotusScript、JavaScript和Ajax的基本概念,同时考虑...

    如何让IE记住用户名和密码!绝对可以用

    ### 如何让IE记住用户名和密码 在日常工作中,我们经常需要访问一些需要登录认证的网站或内部系统。为了提高工作效率、减少重复输入密码带来的不便,很多用户希望浏览器能够自动记住登录信息。本文将详细介绍如何...

    NetApp存储系统操作手册

    - 在这里可以查看现有的聚合,并执行编辑、扩容、增加缓存或设置镜像等操作。 对于新部署的系统,聚合通常由NetApp的专业技术人员在初次安装时创建。用户可以根据需要调整聚合的设置。 ##### 2.2 网络配置 - **...

    C# dotnet 编写 curl 的用户名和密码逻辑.rar

    接着,我们将这个缓存设置为`HttpWebRequest`的`Credentials`,这样当发送请求时,它会自动包含正确的身份验证信息。 另外,如果你需要模拟curl命令的完整功能,包括POST请求、自定义头、URL参数等,你可以使用更...

Global site tag (gtag.js) - Google Analytics