Ralasafe/user/install with demo

来自开放百科 - 灰狐
跳转到: 导航, 搜索

安装 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。)

修改部分配置文件

  1. 修改web.xml中repositoryDir参数值(大约在73行),将其值改为${Tomcat_dir}/webapps/demo/xml。(请使用真实地址代替${Tomcat_dir});
  2. 修改${Tomcat_dir}/webapps/demo/WEB-INF/ralasafe/ralasafe-db.properties,修改jdbcUser和jdbcPassword值,使用你的mysql用户名和密码;(数据库待会儿导入)
  3. 修改${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个场景:

  1. HR系统的员工查询功能,查询需求是:
    1. 总公司用户可以查询所有员工;
    2. 分公司用户只能查询所在分公司及下属营业部员工;
    3. 营业部用户只能查询所在营业部员工。
  2. 财务系统借款功能,决策需求是:
    1. 每个人每次借款上限5000元;
    2. 每个人每天总借款额不能超过20000元。

你通过这个界面登录查看演示效果:登录,该页面登陆框下方提示有登录用户名。他们分别代表总公司用户、分公司用户和营业部用户。

你通过这个界面查看Ralasafe 如何实现了上述访问控制策略:设计器。展开左边权限面板,点击“Query Employee”,查看其访问控制策略;点击“Loan Money”,查看其访问控制策略。

细心的朋友会发现Ralasafe Demo在其他几个地方也用到了访问控制:

  1. 员工查询界面的机构下拉框,不同人登录的时候显示登录用户所在机构;
  2. 员工查询界面的员工列表后的删除链接,当员工所在机构和登录用户机构一致时,才显示了删除链接,否则没有显示。
  3. 借款界面的下方的借款记录,仅显示登录用户当天记录记录。

Demo集成介绍

登录控制介绍

Demo 登录控制实现了如下功能:

  1. 当用户没有登录时,转到登录页面;
  2. 当用户输入用户名、密码后,验证用户名、密码。如果匹配,转到菜单显示页面;否则继续转到登录页面。

完成这些工作,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即可。具体参数意义查看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权限验证。

具体参数意义查看JavaDoc

代码集成

我们先看${unzip_dir}/src/org/ralasafe/demo/EmployeeServlet.java,第84,85行代码: <source lang=java> Collection employees = WebRalasafe.query(req, Privilege.QUERY_EMPLOYEE); req.setAttribute("employees", employees); </source>


调用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,相关显示员工代码如下:

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱