用户工具

站点工具


1.bi与可视化saca.dataviz:10集成:10.2项目权限过滤器参考实现

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
1.bi与可视化saca.dataviz:10集成:10.2项目权限过滤器参考实现 [2021/04/08 12:02]
admin 创建
1.bi与可视化saca.dataviz:10集成:10.2项目权限过滤器参考实现 [2021/04/08 12:07] (当前版本)
admin
行 1: 行 1:
 <markdown> <markdown>
 +#10.2项目权限过滤器参考实现
 +可以使用spring-security过滤器的方法实现对某个用户创建项目的权限控制。  
 +
 +创建实现类ProjectPermissonFilter如下:
 +```
 +package com.neusoft.saca.dataviz.common.security;
 +
 +/**
 + * TODO 请添加该类的描述
 + 
 + */
 +import java.io.IOException;
 +import javax.servlet.Filter;
 +import javax.servlet.FilterChain;
 +import javax.servlet.FilterConfig;
 +import javax.servlet.ServletException;
 +import javax.servlet.ServletRequest;
 +import javax.servlet.ServletResponse;
 +import javax.servlet.http.HttpServletResponse;
 +
 +/**
 + * 项目权限过滤器。
 + * <p>
 + * 根据用户id判断创建项目权限
 + * </p>
 + 
 + * @author l
 + * @since 2021-04-08
 + */
 +public class ProjectPermissonFilter implements Filter {
 +
 + @Override
 + public void init(FilterConfig filterConfig) throws ServletException {
 + // Nothing.
 + }
 +
 + @Override
 + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
 + throws IOException, ServletException {
 + boolean hasPermisson = true;
 +
 + //获取当前用户id
 + String currentUserId = SecurityUtil.getCurrentUserId();
 + /**
 +                 * TODO 根据用户判断权限的实现逻辑,如果没有权限 hasPermisson = false 
 +                 
 +                 */
 +
 + // end
 + if (!hasPermisson) {
 + if (response instanceof HttpServletResponse) {
 + ((HttpServletResponse) response).sendError(HttpServletResponse.SC_FORBIDDEN, "Invalid Permission.");
 + } else {
 + response.getWriter().println("Invalid Permission.");
 + }
 + return;
 +
 + }
 +
 + chain.doFilter(request, response);
 +
 + }
 +
 + @Override
 + public void destroy() {
 + // Nothing.
 + }
 +
 +}
 +
 +
 +```
 +
 +dataviz-service/WEB-INF/web.xml 中加入如下配置:  
 +```
 + <filter>
 +     <filter-name>ProjectPermissonFilter</filter-name>
 +     <filter-class>com.neusoft.saca.dataviz.common.security.ProjectPermissonFilter</filter-class>
 + </filter>
 + <filter-mapping>
 +     <filter-name>ProjectPermissonFilter</filter-name>
 +     <url-pattern>/service/project/</url-pattern>
 + </filter-mapping> 
 +```
 +可以在半小时内搭建一个dataviz开发环境,参考[二次开发环境搭建说明](http://www.idataviz.com/doc/integration/buildenvironment.html)
 +
 +
 +</markdown>
  
  
/var/www/html-133/wiki/data/attic/1.bi与可视化saca.dataviz/10集成/10.2项目权限过滤器参考实现.1617854533.txt.gz · 最后更改: 2021/04/08 12:02 由 admin