新增B站直播相关配置
新增MySQL及Redis配置 新增VUE前端
This commit is contained in:
37
src/main/java/com/yutou/tools/utils/APIFilter.java
Normal file
37
src/main/java/com/yutou/tools/utils/APIFilter.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package com.yutou.tools.utils;
|
||||
|
||||
import com.yutou.tools.mybatis.dao.UKeyDao;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.annotation.WebFilter;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Enumeration;
|
||||
|
||||
@Component
|
||||
@WebFilter
|
||||
public class APIFilter implements Filter {
|
||||
@Resource
|
||||
UKeyDao keyDao;
|
||||
@Resource
|
||||
RedisTools redisTools;
|
||||
@Override
|
||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
||||
HttpServletRequest request= (HttpServletRequest) servletRequest;
|
||||
String token=request.getParameter("token");
|
||||
System.out.println("接收到请求:"+request.getRequestURI()+" "+token);
|
||||
if(token==null&&redisTools.get(request.getSession().getId())==null&&!request.getRequestURI().equals("/")){
|
||||
System.out.println("请求无令牌,拦截");
|
||||
//((HttpServletResponse)servletResponse).sendRedirect("/");
|
||||
//return;
|
||||
}
|
||||
if (token!=null&&keyDao.selectByKey(token)!=null) {
|
||||
System.out.println("token验证不通过:" + token);
|
||||
//return;
|
||||
}
|
||||
filterChain.doFilter(servletRequest, servletResponse);
|
||||
}
|
||||
}
|
||||
28
src/main/java/com/yutou/tools/utils/CorsConfig.java
Normal file
28
src/main/java/com/yutou/tools/utils/CorsConfig.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package com.yutou.tools.utils;
|
||||
|
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.cors.CorsConfiguration;
|
||||
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
||||
import org.springframework.web.filter.CorsFilter;
|
||||
|
||||
@Configuration
|
||||
public class CorsConfig {
|
||||
@Bean
|
||||
public FilterRegistrationBean corsFilter() {
|
||||
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||
CorsConfiguration config = new CorsConfiguration();
|
||||
config.setAllowCredentials(true);
|
||||
// 设置你要允许的网站域名,如果全允许则设为 *
|
||||
config.addAllowedOrigin("*");
|
||||
// 如果要限制 HEADER 或 METHOD 请自行更改
|
||||
config.addAllowedHeader("*");
|
||||
config.addAllowedMethod("*");
|
||||
source.registerCorsConfiguration("/**", config);
|
||||
FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
|
||||
// 这个顺序很重要哦,为避免麻烦请设置在最前
|
||||
bean.setOrder(0);
|
||||
return bean;
|
||||
}
|
||||
}
|
||||
102
src/main/java/com/yutou/tools/utils/RedisConfig.java
Normal file
102
src/main/java/com/yutou/tools/utils/RedisConfig.java
Normal file
@@ -0,0 +1,102 @@
|
||||
package com.yutou.tools.utils;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.springframework.cache.annotation.CachingConfigurerSupport;
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.data.redis.core.*;
|
||||
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
|
||||
@Configuration
|
||||
@EnableCaching
|
||||
public class RedisConfig extends CachingConfigurerSupport {
|
||||
@Bean
|
||||
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
|
||||
|
||||
RedisTemplate<String, Object> template = new RedisTemplate<>();
|
||||
// 配置连接工厂
|
||||
template.setConnectionFactory(factory);
|
||||
|
||||
//使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值(默认使用JDK的序列化方式)
|
||||
Jackson2JsonRedisSerializer jacksonSeial = new Jackson2JsonRedisSerializer(Object.class);
|
||||
|
||||
ObjectMapper om = new ObjectMapper();
|
||||
// 指定要序列化的域,field,get和set,以及修饰符范围,ANY是都有包括private和public
|
||||
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
||||
// 指定序列化输入的类型,类必须是非final修饰的,final修饰的类,比如String,Integer等会跑出异常
|
||||
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
|
||||
jacksonSeial.setObjectMapper(om);
|
||||
|
||||
// 值采用json序列化
|
||||
template.setValueSerializer(jacksonSeial);
|
||||
//使用StringRedisSerializer来序列化和反序列化redis的key值
|
||||
template.setKeySerializer(new StringRedisSerializer());
|
||||
|
||||
// 设置hash key 和value序列化模式
|
||||
template.setHashKeySerializer(new StringRedisSerializer());
|
||||
template.setHashValueSerializer(jacksonSeial);
|
||||
template.afterPropertiesSet();
|
||||
|
||||
return template;
|
||||
}
|
||||
|
||||
/**
|
||||
* 对hash类型的数据操作
|
||||
*
|
||||
* @param redisTemplate
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
|
||||
return redisTemplate.opsForHash();
|
||||
}
|
||||
|
||||
/**
|
||||
* 对redis字符串类型数据操作
|
||||
*
|
||||
* @param redisTemplate
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public ValueOperations<String, Object> valueOperations(RedisTemplate<String, Object> redisTemplate) {
|
||||
return redisTemplate.opsForValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* 对链表类型的数据操作
|
||||
*
|
||||
* @param redisTemplate
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
|
||||
return redisTemplate.opsForList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 对无序集合类型的数据操作
|
||||
*
|
||||
* @param redisTemplate
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
|
||||
return redisTemplate.opsForSet();
|
||||
}
|
||||
|
||||
/**
|
||||
* 对有序集合类型的数据操作
|
||||
*
|
||||
* @param redisTemplate
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
|
||||
return redisTemplate.opsForZSet();
|
||||
}
|
||||
}
|
||||
23
src/main/java/com/yutou/tools/utils/RedisTools.java
Normal file
23
src/main/java/com/yutou/tools/utils/RedisTools.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package com.yutou.tools.utils;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Component
|
||||
public class RedisTools {
|
||||
@Resource
|
||||
RedisTemplate<String,String> redisTemplate;
|
||||
public void set(String key,String value){
|
||||
redisTemplate.opsForValue().set(key,value);
|
||||
}
|
||||
public void set(String key,String value,long time){
|
||||
redisTemplate.opsForValue().set(key, value, time);
|
||||
}
|
||||
public String get(String key){
|
||||
return redisTemplate.opsForValue().get(key);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user