下面就通过电子表格FineReport来简单介绍一下。
工具/原料
电子表格FineReport7.1.1
大小:148.2M 适用平台:windows/linux
LDAP认证
1、问题描述在实际的应用中,用户在使用我们的数据决策系统时,越来越多的倾向于使用LDAP来进行多系统的用户统一认证,Fin髫潋啜缅eReport在7.0.4的版本中也增加了这一用户认证功能,LDAP认证,用户登录的时候,平台拿用户名密码到设置的LDAP系统进行认证,若认证失败,则平台判断认证失败;若LDAP系统认证成功,但是对应的用户不存在于fs平台的用户中,则平台判断认证失败;若LDAP系统认证成功,且对应的用户存在于fs平台的用户中,则平台判断认证成功,可进入fs平台、按照该用户在平台中的权限进行相应操作。点击用户管理>设置标签,可以选择身份验证方式,如下图:
2、LDAP认证选中LDAP认证标签,如下图配置:点击保存按钮,退出op=fs平台,需重新登录。注:登录的时候,需要在用户名后面添加域名,比如说[email protected],如果不保存配置过程,退出直接点击取消按钮即可。至此,LDAP认证即配置完成了。
3、添加用户在问题描述中讲述了,如果LDAP认证成功,但是平台中没有存储该用户,那么平台同样认证失败,那么配置好LDAP之后,还需要给数据决策系统添加用户,具体的添加方式有两种:直接添加,同步数据集添加。注:LDAP认证配置用户时,不需要密码一项,因此在手动添加用户或者同步数据集导入用户时,都没有密码一项。
Http认证
1、对于ERP、OA、CRM、.NET等软件或项目中,其本身是有一个统一的认证体系,报表只作为一个模块集成到这些系统中。用户的恕煨乌溪权限信息是保存在自己的服务器上,且不适合直接开放给finereport服务器,即不需再报表服务端进行认证,用户登陆系统平台后访问报表模块,是直接在其统一的认证体系中认证,而最终返回用户的角色信息至报表服务端,从而控制报表的访问权限,此时就可以使用HTTP认证服务配置。以下讲解此认证配置。
2、实现原理将用户名fr_username和密码fr_password传递给了报表服务,报表服务将带着这两个参数访问认证地址(为了保证安全性,使用post方式)。如果返回的结果是false,即身份认证失败,此时将会返回登陆界面,否则以返回的结果作为该用户的角色保存在session中(多个角色以逗号隔开)。
3、实现步骤编写验证页面验证页面机制在进行登陆时,会将用户名fr_username和密码fr_password传递给报表服务,报表服务将带着这两个参数访问认证地址。如果返回的结果是false,则身份认证失败并提示用户名或密码错误,否则以返回的结果作为该用户的角色保存在session中。
4、示例如下我们用代码实现验证用户名密码是否相等,若相同则訇咀喃谆将返回的用户名识别为角色并复制给fr_authority保存在session中,若不相同则认证失败,具体的代码如下:<%String username = request.getParameter("fr_username");String password = request.getParameter("fr_password");if (username.equals(password) ) { response.getWriter().write(username);} else { response.getWriter().write("false"); }%>将此页面保存到tomcat某个应用下,并命名为auth.jsp。注:fr_username、fr_password、fr_authority是我们报表默认的参数,所以调用时大小写必须保持一致。另:如上方法只是验证用户名和密码是否相等并将用户名为角色返回,您也可以自己设置认证方法。
5、HTTP认证配置设置点击管理系统>用户管理,点击设置选项,认证方式选择Http认证,认证地址选择刚刚创建的认证页面,如下图:注:Http认证选项也不需要密码一项,因此在手动添加用户或者同步数据集导入用户时,都没有密码一项。