2021年12月01日 记

为了完成软件工程的大作业,还是去Github上找了个简易的日程管理系统(LJP-Perfect/betterday),准备修修改改,顺便也减少点前期代码的编写。

对发现的问题稍微做个笔记✍🏻

前端的配置大概发现了些问题:

1. 老熟人node-sass无法安装。不过经过之前的折腾,这个问题已经轻车熟路了😂 大概是每个使用element-ui的Vue项目的通病。

2. 前端请求地址与后端接口不匹配,取掉api的前缀即可。部分接口可能参数也不匹配,比如加入团队这个功能。

3. vuetify的配置问题,大概需要在main.js修改一下,用import取代替其中的require,有些UI组件和其中的属性过时了也要进行替换。

后端的话,除了需要补上项目原本省略的getter/setter方法,更新下spring-boot-starter-parent的版本外,比较有意思的就是Quartz的配置:

因为正确配置好数据库后,仍会提示Quartz的部分表未找到。看到了百度知道上有人提问:为什么quartz的表每次都要全部删除然后再重新生成才能按照规定的时间来执行其中,就有人提及overwriteExistingJobs这个配置项,于是经过一番折腾将yml配置修改为:

spring:
  #省略前面的数据库和其他配置
  #quartz定时任务配置
  quartz:
    job-store-type: jdbc
    overwrite-existing-jobs: true

不需要再指定scheme,导入MySQL中和Quartz相关的表就不会在启动时被删除了。

SecurityConfig的问题明天研究研究再统一修改,目前先修改为:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
	@Override
	protected void configure(HttpSecurity http) throws Exception {
		http.authorizeRequests().antMatchers("/login").permitAll();
		http.authorizeRequests().antMatchers("/user/avatar").permitAll();
		http.authorizeRequests().antMatchers("/user/register").permitAll();
		// CORS enable
		http.cors();
		// Disable CSRF
		http.csrf().disable();
		// 添加一个过滤器 所有访问 /login 的请求交给 JWTLoginFilter 来处理 这个类处理所有的JWT相关内容
		http.addFilterBefore(new JWTLoginFilter("/login", authenticationManager()),
				UsernamePasswordAuthenticationFilter.class);
		// 添加一个过滤器验证其他请求的Token是否合法
		http.addFilterBefore(new JWTAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);

	}

	@Bean
	CustomAuthenticationProvider customAuthenticationProvider() {
		return new CustomAuthenticationProvider();
	}

	@Override
	protected void configure(AuthenticationManagerBuilder auth) throws Exception {
		auth.authenticationProvider(customAuthenticationProvider());
	}

	/*
	 * 注入BCryptPasswordEncoder
	 */
	@Bean
	public BCryptPasswordEncoder bCryptPasswordEncoder() {
		return new BCryptPasswordEncoder();
	}

}

至于具体功能的话明天再稍微检查一下,先睡一步!😪

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注