扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
RDBMS认证提供者的适用范围
Platform 8 中包含了基于 JAAS 安全的 RDBMS 认证提供者( Authentication Provider )的实现。但这个实现需要 Portal 8 的 License ,所以此认证提供者只对购买了 Portal 或 Platform License 的用户有效;而不能使用在购买了 Server 或 Integration License 的用户。
RDBMS认证提供者的配置
RDBMS 认证提供者所需要的资源( jar )文件位于 %WL_HOME%/server/lib/mbeantypes 目录下,文件名为: rdbmsAtnProvider.jar 。在安装了 Portal 产品或 Platform 产品后就能在相应目录下找到这个文件。
配置步骤如下:
1.启动 Domain
使用 Domain 对应的启动脚本 StartWebLogic.cmd/StartWebLogic.sh 来启动 Domain
2.启动 WLS 管理控制台
打开 Web Browser (如 IE )访问 WebLogic Server 管理控制台对应的URL
http://<Server>:<Port>/console 进入
3.进入认证提供者配置页面创建 RDBMS 认证提供者
a) 从控制台左边的选择 Security à Realms à Providers à Authentication 进入认证提供者配置页面
b) 点击 Configure a new RDBMSAuthentication… 链接创建 RDBMS 认证提供者
c) 输入RDBMS认证提供者的名称及选择其认证策略后选择“Create”
认证策略( Control Flag )设置了认证提供者的工作策略包括: REQUIRED 、 REQUISITE 、 SUFFICIENT 、 OPTIONAL
若你的系统只使用了一种认证提供者那策略设置为任何一种都可以。
d) 设置 RDBMS 认证提供者的 JDBC 连接设置属性
4. 删除缺省的认证提供者 DefaultAuthenticationProvider
5. 在数据库中加入系统初建时创建的记录,这些记录包括(在 Oracle 中创建表及创建初始记录的 SQL 见附件 rdbms-data.sql 文件):
使用自定义表结构的实现
若使用系统自带的 RDBMS 认证提供者但又希望使用自定义的表结构时怎么办呢?
答案是绝对没问题,展开 rdbmsAtnProvider.jar ,你会发现在展开的根目录下有一个 Properties 文件 rdbms-provider.properties 。 RDBMSProvider 如何从数据库中提取、增加、修改用户和组的信息就是通过此文件中配置的属性来完成的,每个 Provider 中的数据库操作都对应文件中一个 Properties ,如:
sql.getUser=SELECT USER_ID, PASSWORD FROM USER_SECURITY WHERE USER_NAME=?
这一行指定了 Provider 中提取用户的操作(一个属性) “ sql.getUser ”对应着一段 SQL 语句“ SELECT USER_ID, PASSWORD FROM USER_SECURITY WHERE USER_NAME=? ”,这个语句在 Provider 实现中被作为 PreparedStatement 的 SQL 语句来执行,“ ? ”对应传入的参数。基于这样的实现,你修改此 Properties 文件中的 SQL 语句就能支持客户化的表结构。
步骤:
关于用户密码的加密
缺省带的 RDBMS 认证提供者对用户的密码进行了加密操作,其加密程序如下:
import java.security.MessageDigest; import weblogic.utils.encoders.BASE64Encoder; … private MessageDigest messageDigest; private BASE64Encoder encoder; private String encodePassword(String password) { return encoder.encodeBuffer(messageDigest.digest(password.getBytes())); } …
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者