历史版本1 :HTTP 认证 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:
对于ERP、OA、CRM、.NET等软件或项目中,其本身是有一个统一的认证体系,报表只作为一个模块集成到这些系统中。用户的权限信息是保存在自己的服务器上,且不适合直接开放给finereport服务器,即不需再报表服务端进行认证,用户登陆系统平台后访问报表模块,是直接在其统一的认证体系中认证,而最终返回用户的角色信息至报表服务端,从而控制报表的访问权限,此时就可以使用HTTP认证服务配置。以下讲解此认证配置。

1. 实现原理编辑

将用户名fr_username和密码fr_password传递给了报表服务,报表服务将带着这两个参数访问认证地址(为了保证安全性,使用post方式)。如果返回的结果是false,即身份认证失败,此时将会返回登陆界面,否则以返回的结果作为该用户的角色保存在session中(多个角色以逗号隔开)。

2. 实现步骤编辑

2.1 编写验证页面
  • 验证页面机制
在进行登陆时,会将用户名fr_username和密码fr_password传递给报表服务,报表服务将带着这两个参数访问认证地址。如果返回的结果是false,则身份认证失败并提示用户名或密码错误,否则以返回的结果作为该用户的角色保存在session中。
  • 示例
如下我们用代码实现验证用户名密码是否相等,若相同则将返回的用户名识别为角色并复制给fr_authority保存在session中,若不相同则认证失败,具体的代码如下:
  1. <%  
  2. String username = request.getParameter("fr_username");  
  3. String password = request.getParameter("fr_password");  
  4. if (username.equals(password) ) {   
  5.      response.getWriter().write(username);   
  6. else {  
  7.       response.getWriter().write("false");  
  8.   }  
  9. %>  
将此页面保存到tomcat某个应用下,并命名为auth.jsp。
注:fr_username、fr_password、fr_authority是我们报表默认的参数,所以调用时大小写必须保持一致。
另:如上方法只是验证用户名和密码是否相等并将用户名为角色返回,您也可以自己设置认证方法。
2.2 HTTP认证配置设置
在浏览器地址栏中输入http://localhost:8075/WebReport/ReportServer?op=fs,点击管理系统>用户管理,点击设置选项,认证方式选择Http认证,认证地址选择刚刚创建的认证页面,则认证地址为:http://localhost:8080/PSMweb/auth.jsp,如下图:

注:Http认证选项也不需要密码一项,因此在手动添加用户或者同步数据集导入用户时,都没有密码一项。