1.简介
WebSphere Application Server提供了非常成熟强大的J2EE安全认证机制。WebSphere Application Server启动安全模式,有3种用户注册表(安全认证的数据源):
1) 本地操作系统(Local OS)
2) 轻量级目录访问协议(LDAP)
3) 定制用户注册表(Custom User Registry)
其中方式一和方式二快速方便,无需建立专门的用户数据库。但是,更多时候,客户拥有独立的用户验证数据库存储用户安全信息。方式三使得WebSphere Application Server可以和任意类型数据源进行整合,比如数据库,文件系统,甚至是网络认证服务器。今天主要说一下独立用户注册表这种认证机制。
2.定制用户注册表概念
定制用户注册表是一个定制实现的用户注册表,它实现了WebSphere Application Server提供UserRegistry Java接口。一个定制用户注册表可以支持任意类型的用户数据源,包括关系型数据库,文件系统等等,因此,定制用户注册表在整合已有用户数据源方面非常适用。UserRegistry接口规定了是用来定义WebSphere Application Server对密码或是安全证书进行验证的一系列方法,一个定制用户注册表必须实现UserRegistry接口中的全部方法。
3.UserRegistry接口概述
UserRegistry接口包括的用户信息:
- 用户安全名字(User Security Name):用于验证的用户名字,就如本地操作系统验证方式的用户名。
- 用户唯一ID(User Unique ID):每个用户对应的唯一ID。
- 用户显示名字(User Display Name):可选项,用于显示该用户的名字,比如在欢迎界面,相当于本地操作系统验证方式下的该用户的全名。
- 组安全名字(Group Security Name):用于验证的组的名字,就如本地操作系统的用户。
- 组唯一ID(Group Unique ID):每个组对应的唯一ID。
- 组显示名字(Group Display ID):可选项,用于显示该组的名字,比如在欢迎界面,相当于本地操作系统验证方式下的该组的全名。
UserRegistry接口必须实现的方法:
- initialize
- checkPassword
- mapCertificate
- getRealm
- getUsers
- getUserDisplayName
- getUniqueUserId
- getUserSecurityName
- isValidUser
- getGroups
- getGroupDisplayName
- getUniqueGroupId
- getUniqueGroupIds
- getGroupSecurityName
- isValidGroup
- getGroupsForUser
- getUsersForGroup
- createCredential
4.实现UserRegistry接口
必须实现UserRegistry接口定义的所有方法(createCredential方法例外)。下面详细介绍与整合密切相关的两个方法initialize 和checkPassword,并给出DemoCustomRegistry中的实现代码。在实现代码之前需要去was控制台里面配置一些信息。
点击安全性->安全管理、应用程序和基础结构
这里选择独立定制注册表,点击配置
因为我们要实现自己的验证用户(我们自己的数据库)的机制,这里的用户名添业务库的用户名,类名就是我们自己实现UserRegistry的类,点击定制属性
新建
这里加载了配置文件,里面的信息是连接数据库的url name password,一会需要从这里读取。点击确定之后在第一个页面点击设置为当前。
到此Was控制台配置完成,下面开始实现代码。
initialize方法
public void initialize(Properties props) throws CustomRegistryException,RemoteException {
try {
if (props != null) {
url = props.getProperty("url");
user = props.getProperty("user");
password = props.getProperty("password");
}
} catch(Exception ex) {
throw new CustomRegistryException(ex.getMessage(),ex);
}
if (url == null || user == null || password == null ) {
throw new CustomRegistryException("users/groups information missing");
}
configOK = true;
}
}
getUsers方法
public Result getUsers(String pattern, int limit) throws CustomRegistryException, RemoteException {
Result result = new Result();
Connection conn = null;
try {
conn = getConnection();
Statement stmt = conn.createStatement();
stmt.setFetchSize(limit);
pattern = pattern.replace('*','%');
String sSQL = "SELECT " + COLUMN_USER_NAME + " FROM " + TABLENAME_USER + " WHERE " + COLUMN_USER_NAME + " LIKE '%" + pattern + "%'";
printLog((new StringBuilder("In getting users:")).append(sSQL).toString());
ResultSet rs = stmt.executeQuery(sSQL);
int i=0;
List allUsers = new ArrayList();
while(rs.next() && ++i<=limit) {
allUsers.add(rs.getString(COLUMN_USER_NAME));
}
if(i == limit) {
result.setHasMore();
}
result.setList(allUsers);
stmt.close();
rs.close();
} catch(Exception ex) {
throw new CustomRegistryException(ex.getMessage(), ex);
} finally {
if(conn != null) closeConnection(conn);
}
return result;
}
这里要怎么写完全可以自己定,这个方法就是前面第二张图填入用户名点击确定要去数据库里找这个用户,如果找不到会报错。
checkPassword方法
checkPassword方法用于验证该用户名以及对应的密码是否合法。该函数是整合用户数据源的关键。
public String checkPassword(String userSecurityName, String password) throws PasswordCheckFailedException, CustomRegistryException, RemoteException {
return username;
}
配置完这些,重启服务,就可以实现WAS跟业务库的结合。
- 大小: 30.8 KB
- 大小: 25.7 KB
- 大小: 16.5 KB
- 大小: 14.2 KB
分享到:
相关推荐
- 在将应用从旧版本迁移到WebSphere Application Server 6.0时,开发者需要注意一系列潜在的问题,例如代码兼容性、配置差异以及新的安全特性等。 ##### 2.2 导入源代码 - **2.2.1 从早期版本迁移工作空间** - ...
1. **JDBC驱动兼容性**:确保你安装的SQL Server 2000 SP2的JDBC驱动与WebSphere Application Server 6.0.2.9版本兼容。通常,你需要在WAS的`lib`目录下添加对应的JDBC驱动jar文件(如mssql-jdbc.jar或jtds.jar)。 ...
WebSphere Application Server 6 是IBM推出的一款企业级应用服务器,是构建、部署和管理Java EE应用程序的重要平台。本文将详细阐述其安装配置的全过程,并通过图文形式帮助理解每个步骤。 一、系统需求与准备工作 ...
该文档详细介绍了如何配置和管理WebSphere Application Server的安全特性,包括用户注册表的设置、管理安全性配置以及如何集成第三方安全组件等内容。 #### 二、重点章节分析 ##### 第1章:介绍 本章主要介绍了...
WebSphere Applicatoin Server 7.0 基于独立定制注册表方式实现单点登录,及身份权限认证。 关键词:Java WAS7.0 、独立定制注册表、SSO、JAAS、j_security_check、基于数据库认证单点登录。 关于Java单点登录虽然...
在本文中,我们将深入探讨两个主流的企业级Java应用程序服务器之间的对比——IBM的WebSphere Application Server V6.0与BEA的WebLogic Server 9.0。这两款产品都是企业级应用部署的重要选择,但它们在关键特性、兼容...
WPV6是基于Java 2 Platform, Enterprise Edition (J2EE) 构建的应用程序,它运行在Websphere Application Server (WAS)之上。通过使用WPV6,企业可以构建高度定制化的业务门户,支持B2B(Business-to-Business)、...
WebSphere Application Server9.0.0.2 安装包百度云盘资源地址,非商业用途,仅供学习使用。
用户注册表(User Registry)是 WebSphere Application Server 中用于存储用户身份验证信息的核心组件之一。它负责管理用户账号、密码以及角色等信息。WebSphere 支持多种类型的用户注册表,包括 LDAP 注册表、本地...
此文档名为《W38S1 Administration of WebSphere Application Server V5》,是 IBM 认证课程材料的一部分,旨在为学员提供 WebSphere Application Server V5 的管理技能训练。该文档的课程代码为 WF381,版本为 ERC...
WebSphere Application Server for Developers V8.5.5是供开发人员使用的免费版的was,需要的小伙伴可以本地安装一下 ,部署测试web项目,因为上传空间有限,这里就只上传windows64位的。
### WebSphere Application Server V6 自动安装应用程序知识点详解 #### 一、概述 **WebSphere Application Server (WAS) V6** 是IBM提供的一款企业级应用服务器产品,它支持多种应用开发模型,如Java EE、Web ...
WebSphere Application Server 启动错误诊断 在本文中,我们将详细介绍 WebSphere Application Server(WAS)启动错误的诊断方法。WAS 是一个复杂的应用服务器,启动过程中可能会出现各种错误,影响服务器的正常...
5. **集成改进**:与IBM其他产品如WebSphere Application Server、DB2等的集成更加紧密,提升整体解决方案的效率。 6. **管理工具**:提供了一套全面的管理工具,包括MQ Explorer,用于监控和管理队列管理器、队列和...
在安装完成后,记得启动WebSphere Application Server并进行必要的配置,例如定义服务器实例、部署应用程序、设置安全策略等。 安装WebSphere 8.0不仅涉及到下载和安装软件,还包括后期的配置和管理,这需要对Java ...
#### 三、WebSphere Plugin与WebSphere Application Server之间的SSL安全认证配置 1. **创建WebSphere Plugin插件使用SSL密钥数据库文件** - **步骤a)** 新建Plugin插件的SSL密钥数据库文件。 - **步骤b)** 输入...
- **2.3.4 外部服务器**:不是 WebSphere Application Server 的一部分,但可以通过适配器或连接器与之集成。 **2.4 容器** - **2.4.1 Web 容器**:支持 Web 应用程序的部署和执行,处理 HTTP 请求。 - **2.4.2 ...
### WebSphere Application Server for Developers V7 #### 一、概述 IBM WebSphere Application Server (WAS) 是一款高性能的企业级应用服务器,适用于构建、部署和管理企业级Java应用程序。本指南旨在帮助开发者...
本篇将深入探讨WebSphere Application Server v6.1的安全特性、配置和最佳实践。 1. **身份验证与授权** - **基本身份验证**:WAS支持基本的用户名和密码验证,可以通过自定义 Realm 进行扩展。 - **LTPA...