若依前后端分离版入门
1.本机环境部署
2.前端路由修改
3.防xss过滤修改
4.权限配置
5.菜单配置
本机环境部署
前端:
编译器:vscode
环境:node
后端:
编译器:IDEA
环境:jdk1.8,MySQL5.7,Redis5.0,navicat
编译器可以使用idea就足够,只不过我习惯了用vscode写前端代码,
前端部分运行:
npm install
npm run dev
后端部分需要修改配置:
1.运行sql文件,修改数据库配置。
2.启动redis,修改redis配置
3.修改日志位置
启动即可!
前端路由修改
当需要新增页面时,就需要修改若依路由配置,若依对路由做了严格配置(导航守卫)
若要修改启动页,就必须修改前置钩子,以及修改redirect.
防xss过滤修改
若依采用的是http协议,这样就有可能面临着xss攻击的情况
如果是不处理的话对于项目来说是一个很大的漏洞,但有些时候前端可能会用到传入一些标签的形式来处理一些情况,这个时候是又需求的,所以也不能完全屏蔽掉。
若依这里是采用配置拦截器的方式来处理xss攻击,一旦请求被过滤器拦截,就会转入到自定义的拦截器XssFilter当中,首先解决的就是判断是否启用xss拦截器和是否需要拦截,若依这里是采用在配置文件当中填写具体信息的方式,来配置是否启用xss,是否是白名单,是否是匹配链接。按照后台填写的数据处理请求,如果是不启用或者是该请求为白名单,就直接将请求放过如果不通过就交给XssHttpServletRequestWrapper来处理。
import cn.hutool.core.util.StrUtil;
import com.wzld.common.filter.RepeatableFilter;
import com.wzld.common.filter.XssFilter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.servlet.DispatcherType;
import java.util.HashMap;
import java.util.Map;
/**
* Filter配置
*
* @author ruoyi
*/
@Configuration
public class FilterConfig
{
@Value("${xss.enabled}")
private String enabled;
@Value("${xss.excludes}")
private String excludes;
@Value("${xss.urlPatterns}")
private String urlPatterns;
@SuppressWarnings({ "rawtypes", "unchecked" })
@Bean
public FilterRegistrationBean xssFilterRegistration()
{
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new XssFilter());
registration.addUrlPatterns(StrUtil.split(urlPatterns, ","));
registration.setName("xssFilter");
registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE);
Map<String, String> initParameters = new HashMap<String, String>();
initParameters.put("excludes", excludes);
initParameters.put("enabled", enabled);
registration.setInitParameters(initParameters);
return registration;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Bean
public FilterRegistrationBean someFilterRegistration()
{
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new RepeatableFilter());
registration.addUrlPatterns("/*");
registration.setName("repeatableFilter");
registration.setOrder(FilterRegistrationBean.LOWEST_PRECEDENCE);
return registration;
}
}
```java
# 防止XSS攻击
xss:
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
excludes: /system/notice,/system/news
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
----application.yml
配置排除链接,添加富文本。
权限配置
基本的操作权限在后台根据角色,部门分配权限即可!
开放接口访问权限
菜单配置
看到这我想你已经会了!