关于数据分析:调用硕迪数据分析系统的报表时通过超链接调用如何集成现有系统的权限验证

48次阅读

共计 1694 个字符,预计需要花费 5 分钟才能阅读完成。

硕迪数据分析系统自身蕴含一个权限管理控制的门户模块,然而在理论利用中很多是作为报表或者大屏页面资源独立部署一个利用,而后通过超链接调用。此时须要进行拜访权限管制集成。上面介绍一下硕迪数据分析系统的拜访权限集成形式。
1、首先将无门户模块的硕迪数据分析系统的 web 利用部署在 tomcat 或其余 j2ee 服务器。
2、编写过滤器代码过滤对报表等资源的申请,示例代码如下
package com.report.filter;

import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

public class ReportFilter implements Filter {
    String token=null;
    String key = “36E8A258B31F8B8425900D34AE650842”;
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // 如果须要配置密钥可读取自定义配置
        key=filterConfig.getInitParameter(“key”);
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        String token=servletRequest.getParameter(“token”);
        HttpServletResponse htteResp=(HttpServletResponse)servletResponse;
        if(token==null){
            htteResp.sendError(400,”token 为空,无拜访权限!”);
            return;
        }
        boolean legitimate = true;
        // 不同系统验证 token 不同,上面写本人的验证 token 的代码
        //legitimate = AuthUtil.checkToken(token);
        if(legitimate){
           filterChain.doFilter(servletRequest,servletResponse);
        }else{
            htteResp.sendError(400,”token 不非法,无拜访权限!”);
            return;
        }
    }

    @Override
    public void destroy() {

    }
}
3、将代码编译打包为 reportFilter.jar,并拷贝到报表服务的 web 利用目录 lib 下
4、批改 web.xml 增加 filter 配置,key 配置秘钥,如下:
<filter>

    <filter-name>reportFilter</filter-name>
    <filter-class>com.report.filter.ReportFilter</filter-class>
    <init-param>
        <param-name>key</param-name>
        <param-value>36E8A258B31F8B8425900D34AE650842</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>reportFilter</filter-name>
    <url-pattern>/*</url-pattern>

</filter-mapping>
5、调用端拜访报表的时候需蕴含 token。示例如下:
http://localhost:8080/report/…

正文完
 0