Ralasafe/user/install with demo

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(安装 Ralasafe (with demo))
第1行: 第1行:
=安装 [[Ralasafe]] (with demo)=
+
安装 [[Ralasafe]] (with demo)
  
 
==下载==
 
==下载==
第24行: 第24行:
 
解压ralasafe_demo-${buildNumber}.zip到任意目录。以下我们以${unzip_dir}来代替。
 
解压ralasafe_demo-${buildNumber}.zip到任意目录。以下我们以${unzip_dir}来代替。
  
=== 复制工作 ===
+
===复制文件===
 +
#在${Tomcat_dir}/webapps下创建demo目录,
 +
#并将${unzip_dir}/WebContent/所有内容复制到${Tomcat_dir}/webapps/demo/目录下;
 +
#然后,将${unzip_dir}/xml目录复制到${Tomcat_dir}/webapps/demo目录下。(如果你使用Oracle 数据库,复制${unzip_dir/xml(oracle)到${Tomcat_dir}/webapps/demo目录下,并将xml(oracle)目录重命名为xml。)
  
# 在${Tomcat_dir}/webapps下创建demo目录,
 
# 并将${unzip_dir}/WebContent/所有内容复制到${Tomcat_dir}/webapps/demo/目录下;
 
# 然后,将${unzip_dir}/xml目录复制到${Tomcat_dir}/webapps/demo目录下。(如果你使用Oracle 数据库,复制${unzip_dir/xml(oracle)到${Tomcatd_dir}/webapps/demo目录下,并将xml(oracle)目录重命名为xml。)
 
 
=== 修改部分配置文件 ===
 
 
# 修改web.xml中repositoryDir参数值(大约在73行),将其值改为${Tomcat_dir}/webapps/demo/xml。(请使用真实地址代替${Tomcat_dir});
 
# 修改${Tomcat_dir}/webapps/demo/WEB-INF/ralasafe/ralasafe-db.properties,修改jdbcUser和jdbcPassword值,使用你的mysql用户名和密码;(数据库待会儿导入)
 
# 修改${Tomcat_dir}/webapps/demo/WEB-INF/ralasafe/app-ds.properties,修改jdbcUser和jdbcPassword值,使用你的mysql用户名和密码。(数据库待会儿导入)
 
 
=== 导入Demo应用数据 ===
 
 
使用Mysql GUI Tool将${unzip_dir}/sql/demo-mysql.sql导入到mysql数据库。该脚本会在mysql数据库里面创建2个新库:mydemo和ralasafe,并导入相关数据。
 
 
如果,你使用oracle数据库。那么请先创建2个用户名:mydemo和ralasafe。将${unzip_dir}/sql/demo-oracle(mydemo schema).sql 导入到mydemo schema;将${unzip_dir}/sql/demo-oracle(ralasafe schema).sql 导入到ralasafe schema。 导入后,你还要对数据源配置文件做相应修改。 ${Tomcat_dir}/webapps/demo/WEB-INF/ralasafe/ralasafe-db.properties和${Tomcat_dir}/webapps/demo/WEB-INF/ralasafe/app-ds.properties,修改jdbcDriver,jdbcUrl,jdbcUser和jdbcPassword值。
 
 
== Demo 场景演示 ==
 
 
Ralasafe Demo 演示了2个场景:
 
 
#  HR系统的员工查询功能,查询需求是:
 
## 总公司用户可以查询所有员工;
 
## 分公司用户只能查询所在分公司及下属营业部员工;
 
## 营业部用户只能查询所在营业部员工。
 
#  财务系统借款功能,决策需求是:
 
## 每个人每次借款上限5000元;
 
## 每个人每天总借款额不能超过20000元。
 
 
你通过这个界面登录查看演示效果:[[http://localhost:8080/demo/ralasafe/demo/login.jsp]],该页面登陆框下方提示有登录用户名。他们分别代表总公司用户、分公司用户和营业部用户。
 
 
你通过这个界面查看Ralasafe 如何实现了上述访问控制策略:[[http://localhost:8080/demo/ralasafe/designer]]。展开左边权限面板,点击“Query Employee”,查看其访问控制策略;点击“Loan Money”,查看其访问控制策略。
 
 
细心的朋友,会发现Ralasafe Demo在其他几个地方也用到了访问控制:
 
 
# 员工查询界面的机构下拉框,不同人登录的时候显示登录用户所在机构;
 
# 员工查询界面的员工列表后的删除链接,当员工所在机构和登录用户机构一致时,才显示了删除链接,否则没有显示。
 
# 借款界面的下方的借款记录,仅显示登录用户当天记录记录。
 
 
== Demo集成介绍 ==
 
 
=== 登录控制介绍 ===
 
 
Demo 登录控制实现了如下功能:
 
 
# 当用户没有登录时,转到登录页面;
 
# 当用户输入用户名、密码后,验证用户名、密码。如果匹配,转到菜单显示页面;否则继续转到登录页面。
 
 
完成这些工作,Demo 只要编写登录页面(${Tomcat_dir}/webapps/demo/ralasafe/demo/login.jsp)和登录后菜单显示页面(${Tomcat_dir}/webapps/demo/ralasafe/demo/main.jsp),其他的全部交给ralasafe自带的org.ralasafe.webFilter.LoginFilter完成。将LoginFilter配置到web.xml即可。具体参数意义查看[[http://www.ralasafe.org/zh/guide/reference/javadoc/org/ralasafe/webFilter/LoginFilter.html JavaDoc]]。
 
 
LoginFilter会对用户访问的路径(该路径在web.xml配置的url-pattern规则内)进行过滤,如果用户没有登录,转到登录页面;否则继续。在登录页面的时候,当用户输入用户名、密码后,LoginFilter会自动与后台用户表记录进行比对,如果匹配,登录成功,继续提交执行;否则,返回到登录页面。
 
 
=== URL访问权限控制 ===
 
 
Demo 没有在各个Servlet里面对URL访问权限进行判断。URL访问权限判断工作,也完全交给Ralasafe自带的org.ralasafe.webFilter.UrlAclFilter来完成。直接将其配置到web.xml即可。
 
 
UrlAclFilter基本工作原理是:对当前URL与权限表的url字段进行比对,不仅比对路径,如果有参数(形如xxx?oper=add),还比对参数。如果有匹配上的,说明当前访问url需要进行权限验证。此时UrlAclFilter会安装用户角色权限关系进行验证;如果没有匹配上,说明当前url无需进行url权限验证。
 
 
具体参数意义查看[[http://www.ralasafe.org/zh/guide/reference/javadoc/org/ralasafe/webFilter/UrlAclFilter.html JavaDoc]]
 
 
=== 代码集成 ===
 
 
我们先看${unzip_dir}/src/org/ralasafe/demo/EmployeeServlet.java,第84,85行代码:
 
 
<pre><tt><span style="color: #000000;">1:</span> <span style="color: #008080;">Collection</span> employees <span style="color: #990000;">=</span> WebRalasafe<span style="color: #990000;">.</span><strong><span style="color: #000000;">query</span></strong><span style="color: #990000;">(</span>req<span style="color: #990000;">,</span> Privilege<span style="color: #990000;">.</span>QUERY_EMPLOYEE<span style="color: #990000;">);</span>&#13;
 
<span style="color: #000000;">2:</span> req<span style="color: #990000;">.</span><strong><span style="color: #000000;">setAttribute</span></strong><span style="color: #990000;">(</span><span style="color: #ff0000;">&amp;quot;employees&amp;quot;</span><span style="color: #990000;">,</span> employees<span style="color: #990000;">);</span></tt></pre>
 
 
调用WebRalasafe API,传入HttpRequest参数和当前操作权限ID。WebRalasafe将调用Ralasafe权限引擎,返回当前用户具有权限查看的数据,即数据级权限。开发人员不需要编写一行查询代码。Ralasafe也支持分页、条件查询、多表查询。
 
 
当前用户直接从HttpRequest.getSession()里面获取;Privilege.QUERY_EMPLOYEE是从Ralasafe Designer里面导出的常量,不需要人工编程。
 
 
返回的Collection employees是根据业务需求自定义的Java实体类。Demo 应用里是org.ralasafe.demo.Employee。
 
 
显示员工的Jsp页面${unzip_dir}/WebContent/ralasafe/demo/employee.jsp,相关显示员工代码如下:
 
  
 
[[Category:Ralasafe]]
 
[[Category:Ralasafe]]

2011年5月28日 (六) 14:54的版本

安装 Ralasafe (with demo)

下载

如果你是Ralasafe初学者,如果你是期望快速了解Ralasafe功能的开发者、决策者,我们建议你下载Ralasafe Demo(下载地址 。如果下载速度慢,请切换其他镜像(Mirror))。通过快速安装Ralasafe Demo应用,可以快速了解Ralasafe安装、界面及产品功能。

安装环境

Java 运行环境:Jdk 1.4以上 数据库环境:Mysql或者Oracle 9i以上 Web 服务器:Tomcat 浏览器:建议Chrome,Firefox浏览器 安装前,请确认你的安装机器有以上软件。

我们以安装到Tomcat +MYSQL环境为例进行讲解。

Ralasafe Demo安装非常简单,有:

  1. 复制文件;
  2. 修改部分配置文件——数据源和web.xml;
  3. 导入Demo应用数据。

三部分工作组成。

解压ralasafe_demo-${buildNumber}.zip到任意目录。以下我们以${unzip_dir}来代替。

复制文件

  1. 在${Tomcat_dir}/webapps下创建demo目录,
  2. 并将${unzip_dir}/WebContent/所有内容复制到${Tomcat_dir}/webapps/demo/目录下;
  3. 然后,将${unzip_dir}/xml目录复制到${Tomcat_dir}/webapps/demo目录下。(如果你使用Oracle 数据库,复制${unzip_dir/xml(oracle)到${Tomcat_dir}/webapps/demo目录下,并将xml(oracle)目录重命名为xml。)
分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱