月球大数据地理空间分析展示平台-【后端】-月球后台服务
1
13693261870
2023-07-10 15ee5a10d665522ea53894bc1d5383ab25df21b8
1
已修改4个文件
89 ■■■■ 文件已修改
src/main/java/com/moon/server/entity/all/ResAuthEntity.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/interceptor/ProxyFilter.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/service/sys/TokenService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/all/PermsMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/moon/server/entity/all/ResAuthEntity.java
@@ -13,10 +13,11 @@
    private String name;
    private String server;
    private String url;
    private String proxy;
    public ResAuthEntity() {
    }
    public Integer getId() {
@@ -35,11 +36,19 @@
        this.name = name;
    }
    public String getServer() {
        return server;
    public String getUrl() {
        return url;
    }
    public void setServer(String server) {
        this.server = server;
    public void setUrl(String url) {
        this.url = url;
    }
    public String getProxy() {
        return proxy;
    }
    public void setProxy(String proxy) {
        this.proxy = proxy;
    }
}
src/main/java/com/moon/server/interceptor/ProxyFilter.java
@@ -6,6 +6,7 @@
import com.moon.server.helper.StringHelper;
import com.moon.server.helper.WebHelper;
import com.moon.server.service.all.SysService;
import com.moon.server.service.sys.ResLogService;
import javax.annotation.Resource;
import javax.servlet.*;
@@ -24,6 +25,11 @@
    @Resource
    private SysService sysService;
    @Resource
    private ResLogService resLogService;
    private final static int LEN = "/proxy/".length();
    @Override
    public void init(FilterConfig filterConfig) {
    }
@@ -32,26 +38,46 @@
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse res = (HttpServletResponse) response;
        if (!check(req, res)) {
        String token = getToken(req);
        if (!check(req, res, token)) {
            return;
        }
        int i = 0;
        String uri = req.getRequestURI();
        int resId = getResId(uri, LEN + token.length() + 1);
        //
        insertLog(req, res);
    }
    @Override
    public void destroy() {
    }
    private boolean check(HttpServletRequest req, HttpServletResponse res) {
        // 2.获取令牌
        String token = WebHelper.getToken(req);
        if (StringHelper.isNull(token)) {
            return WebHelper.writeStr2Page(res, AuthInterceptor.NO_TOKEN);
        }
    /**
     * 获取令牌
     */
    private String getToken(HttpServletRequest req) {
        return req.getRequestURI().substring(LEN, req.getRequestURI().indexOf("/", LEN));
    }
    /**
     * 获取资源ID
     */
    private int getResId(String uri, int start) {
        int end = uri.indexOf("/", start);
        String str = -1 == end ? uri.substring(start) : uri.substring(start, end);
        return Integer.parseInt(str);
    }
    /**
     * 检查
     */
    private boolean check(HttpServletRequest req, HttpServletResponse res, String token) {
        // 3.获取用户
        UserEntity ue = sysService.tokenService.getCurrentUser(req);
        UserEntity ue = sysService.tokenService.getUserByToken(token);
        if (ue == null) {
            return WebHelper.writeStr2Page(res, AuthInterceptor.NO_LOGIN);
        }
@@ -123,4 +149,18 @@
        return te.getIp().equals(ip);
    }
    private boolean checkPerms(int resId){
        return true;
    }
    /**
     * 插入日志
     */
    private void insertLog(HttpServletRequest req, HttpServletResponse res) {
        String ip = WebHelper.getIpAddress(req);
        //log.info("uriOri={} rAddr={} rHost={} token={}", uriOri, addr, host, token);
    }
}
src/main/java/com/moon/server/service/sys/TokenService.java
@@ -226,6 +226,14 @@
     */
    public UserEntity getCurrentUser(HttpServletRequest req) {
        String token = WebHelper.getToken(req);
        return getUserByToken(token);
    }
    /**
     * 根据令牌获取用户
     */
    public UserEntity getUserByToken(String token) {
        if (StringHelper.isNull(token)) {
            return null;
        }
src/main/resources/mapper/all/PermsMapper.xml
@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.moon.server.mapper.all.PermsMapper">
    <select id="selectRes" resultType="com.moon.server.entity.all.ResAuthEntity">
        select distinct d.id,d.name,d.server
        select distinct d.id, d.name, d.url, d.proxy
        from lf.sys_user a
            inner join lf.sys_role_user b on a.id = b.userid
            inner join lf.sys_role_res c on b.roleid = c.roleid