| | |
| | | import com.moon.server.entity.sys.ResLogEntity; |
| | | import com.moon.server.entity.sys.TokenEntity; |
| | | import com.moon.server.entity.sys.UserEntity; |
| | | import com.moon.server.helper.AsyncHelper; |
| | | import com.moon.server.helper.StringHelper; |
| | | import com.moon.server.helper.WebHelper; |
| | | import com.moon.server.service.all.PermsService; |
| | | import com.moon.server.service.all.SysService; |
| | | import com.moon.server.service.sys.ResLogService; |
| | | import org.apache.commons.logging.Log; |
| | | import org.apache.commons.logging.LogFactory; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.*; |
| | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.List; |
| | | import java.util.TimerTask; |
| | | |
| | | /** |
| | | * 代理过滤器 |
| | |
| | | |
| | | private final static int LEN = "/proxy/".length(); |
| | | |
| | | private static final Log log = LogFactory.getLog(ProxyFilter.class); |
| | | |
| | | public static final String ILLEGAL_RESOURCE = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.UNAUTHORIZED, "没有资源访问权限")); |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) { |
| | | HttpServletRequest req = (HttpServletRequest) request; |
| | | HttpServletResponse res = (HttpServletResponse) response; |
| | | try { |
| | | HttpServletRequest req = (HttpServletRequest) request; |
| | | HttpServletResponse res = (HttpServletResponse) response; |
| | | |
| | | // 2.获取令牌 |
| | | String token = getToken(req); |
| | | // 2.获取令牌 |
| | | String token = getToken(req); |
| | | |
| | | // 3.获取用户 |
| | | UserEntity ue = getUser(res, token); |
| | | if (null == ue) { |
| | | return; |
| | | // 3.获取用户 |
| | | UserEntity ue = getUser(res, token); |
| | | if (null == ue) { |
| | | return; |
| | | } |
| | | |
| | | int resId = getResId(req.getRequestURI(), LEN + token.length() + 1); |
| | | if (!check(req, res, ue, token, resId)) { |
| | | return; |
| | | } |
| | | |
| | | insertLog(req, ue, resId); |
| | | } catch (Exception ex) { |
| | | log.error(ex.getMessage(), ex); |
| | | } |
| | | |
| | | int resId = getResId(req.getRequestURI(), LEN + token.length() + 1); |
| | | if (!check(req, res, ue, token, resId)) { |
| | | return; |
| | | } |
| | | |
| | | insertLog(req, ue, resId); |
| | | } |
| | | |
| | | @Override |
| | |
| | | * 插入日志 |
| | | */ |
| | | private void insertLog(HttpServletRequest req, UserEntity ue, int resId) { |
| | | String ip = WebHelper.getIpAddress(req); |
| | | AsyncHelper helper = new AsyncHelper(); |
| | | helper.execute(new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | String ip = WebHelper.getIpAddress(req); |
| | | |
| | | ResLogEntity entity = new ResLogEntity(); |
| | | entity.setResid(resId); |
| | | entity.setType(getRequestType(req.getMethod())); |
| | | entity.setIp(ip); |
| | | entity.setUrl(req.getRequestURL().toString()); |
| | | entity.setCreateUser(ue.getId()); |
| | | ResLogEntity entity = new ResLogEntity(); |
| | | entity.setResid(resId); |
| | | entity.setType(getRequestType(req.getMethod())); |
| | | entity.setIp(ip); |
| | | entity.setUrl(req.getRequestURL().toString()); |
| | | entity.setCreateUser(ue.getId()); |
| | | |
| | | resLogService.insert(entity); |
| | | resLogService.insert(entity); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |