科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何在Platform 8中使用RDBMS认证提供者

如何在Platform 8中使用RDBMS认证提供者

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Platform 8 中包含了基于 JAAS 安全的 RDBMS 认证提供者( Authentication Provider )的实现。

来源:dev2dev 2007年10月16日

关键字: 应用 BEA 技术 中间件

  • 评论
  • 分享微博
  • 分享邮件

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 进入认证提供者配置页面

    如何在Platform 8中使用RDBMS认证提供者图-1

      b) 点击 Configure a new RDBMSAuthentication… 链接创建 RDBMS 认证提供者

    如何在Platform 8中使用RDBMS认证提供者图-2

      c) 输入RDBMS认证提供者的名称及选择其认证策略后选择“Create”

    如何在Platform 8中使用RDBMS认证提供者图-3

      认证策略( Control Flag )设置了认证提供者的工作策略包括: REQUIRED 、 REQUISITE 、 SUFFICIENT 、 OPTIONAL

    • REQUIRED ---- 认证必须成功,即使不成功也调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)
    • REQUISITE ---- 认证必须成功,若不成功则立即返回;若成功则调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)
    • SUFFICIENT ---- 认证非必须成功,但一旦成功则立即返回;否则调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)
    • OPTIONAL ---- 认证非必须成功,成功与否都调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)

      若你的系统只使用了一种认证提供者那策略设置为任何一种都可以。

      d) 设置 RDBMS 认证提供者的 JDBC 连接设置属性

    如何在Platform 8中使用RDBMS认证提供者图-4

      4. 删除缺省的认证提供者 DefaultAuthenticationProvider

    如何在Platform 8中使用RDBMS认证提供者图-5

      5. 在数据库中加入系统初建时创建的记录,这些记录包括(在 Oracle 中创建表及创建初始记录的 SQL 见附件 rdbms-data.sql 文件):

    • 用户(管理员用户)
    • 组(Administrators 、 Portal 所需的组、 Integration 所需的组)
    • 用户和组间的关系
    • 组和组间的关系

使用自定义表结构的实现

  若使用系统自带的 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 语句就能支持客户化的表结构。

  步骤:

  • 备份 rdbmsAtnProvider.jar 文件
  • 展开 rdbmsAtnProvider.jar 文件
  • 修改 rdbms-provider.properties 文件修改 Provider 执行的操作对应的 SQL 语句
  • 重新打包 rdbmsAtnProvider.jar 文件并覆盖原文件

关于用户密码的加密

  缺省带的 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())); 
 } 
 … 

dot dot dot

dot

  

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章