[转帖]如何在WebLogic Platform 8.1中使用RDBMS认证提供者_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3455 | 回复: 0   主题: [转帖]如何在WebLogic Platform 8.1中使用RDBMS认证提供者        下一篇 
root
注册用户
等级:中尉
经验:470
发帖:31
精华:1
注册:2013-2-22
状态:离线
发送短消息息给root 加好友    发送短消息息给root 发消息
发表于: IP:您无权察看 2013-3-4 14:25:35 | [全部帖] [楼主帖] 楼主

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://ip:port/console  进入
  3.进入认证提供者配置页面创建 RDBMS 认证提供者
  a) 从控制台左边的选择 Security => Realms => Providers => Authentication 进入认证提供者配置页面

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

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

  认证策略( Control Flag )

设置

了认证提供者的工作策略包括: REQUIRED 、 REQUISITE 、 SUFFICIENT 、 OPTIONAL

REQUIRED ---- 认证必须

成功

,即使不

成功

也调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)
REQUISITE ---- 认证必须

成功

,若不

成功

则立���返回;若

成功

则调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)
SUFFICIENT ---- 认证非必须

成功

,但一旦

成功

则立即返回;否则调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)
OPTIONAL ---- 认证非必须

成功

成功

与否都调用认证提供者列表中的下一个认证提供者(若无下一个认证提供者则返回)


  若你的

系统

只使用了一种认证提供者那策略

设置

为任何一种都可以。
  d)

设置

RDBMS 认证提供者的JDBC连接

设置

属性

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

  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 认证提供者对用户的密码进行了加密操作,其加密

程序

如下:

  1. import java.security.MessageDigest;
  2.  import weblogic.utils.encoders.BASE64Encoder;
  3.  …
  4.  
  5.  private MessageDigest messageDigest;
  6.  private BASE64Encoder encoder;
  7.  private String encodePassword(String password)
  8.  
  9.  {
  10.        return encoder.encodeBuffer(messageDigest.digest(password.getBytes()));
  11.  }
  12.  …




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论