main
黄海 1 year ago
parent 7d5c48c5d3
commit 45b60c0834

@ -6,7 +6,8 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
//SpringBoot系列教程web篇之过滤器Filter使用指南
//https://blog.csdn.net/cxyxysam/article/details/135483785
@WebFilter(urlPatterns = "/*") @WebFilter(urlPatterns = "/*")
public class CorsFilter implements Filter { public class CorsFilter implements Filter {
@Override @Override

@ -11,16 +11,11 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@EnableZuulProxy @EnableZuulProxy
public class GwOpenAPIApplication { public class GwOpenAPIApplication {
@RequestMapping("/") @RequestMapping("/")
public String index(){ public String index(){
return "Hello,gw-openapi"; return "Hello,gw-openapi";
} }
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(GwOpenAPIApplication.class, args); SpringApplication.run(GwOpenAPIApplication.class, args);
} }
} }

@ -20,80 +20,42 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
@EnableCaching //启用缓存,这个注解很重要; @EnableCaching //启用缓存,这个注解很重要;
public class RedisCacheConfig extends CachingConfigurerSupport { public class RedisCacheConfig extends CachingConfigurerSupport {
/** /**
* . * .
*
* @param redisTemplate * @param redisTemplate
* @return * @return
*/ */
@Bean @Bean
public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) { public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) {
CacheManager cacheManager = new RedisCacheManager(redisTemplate); CacheManager cacheManager = new RedisCacheManager(redisTemplate);
return cacheManager; return cacheManager;
} }
/** /**
* redis,jdbcTemplate; * redis,jdbcTemplate;
* <p>
*
* CacheManagerCache * CacheManagerCache
* <p>
*
* RedisTemplate * RedisTemplate
* <p>
*
* RedisStorage; * RedisStorage;
* *
* @param factory : Springapplication.properties * @param factory : Springapplication.properties
* @return * @return
*/ */
@Bean @Bean
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) { public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>(); RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
redisTemplate.setConnectionFactory(factory); redisTemplate.setConnectionFactory(factory);
//key序列化方式;(不然会出现乱码;,但是如果方法上有Long等非String类型的话会报类型转换错误 //key序列化方式;(不然会出现乱码;,但是如果方法上有Long等非String类型的话会报类型转换错误
//所以在没有自己定义key生成策略的时候以下这个代码建议不要这么写可以不配置或者自己实现ObjectRedisSerializer //所以在没有自己定义key生成策略的时候以下这个代码建议不要这么写可以不配置或者自己实现ObjectRedisSerializer
//或者JdkSerializationRedisSerializer序列化方式; //或者JdkSerializationRedisSerializer序列化方式;
RedisSerializer<String> redisSerializer = new StringRedisSerializer();//Long类型不可以会出现异常信息; RedisSerializer<String> redisSerializer = new StringRedisSerializer();//Long类型不可以会出现异常信息;
redisTemplate.setKeySerializer(redisSerializer); redisTemplate.setKeySerializer(redisSerializer);
redisTemplate.setHashKeySerializer(redisSerializer); redisTemplate.setHashKeySerializer(redisSerializer);
return redisTemplate; return redisTemplate;
} }
} }

@ -26,14 +26,12 @@ import java.util.regex.Pattern;
@Component @Component
@ConfigurationProperties(prefix = "jwt.filter") @ConfigurationProperties(prefix = "jwt.filter") //should_not_filter是通过这句话注入读取进内存的
public class ZuulPreFilter extends com.netflix.zuul.ZuulFilter { public class ZuulPreFilter extends com.netflix.zuul.ZuulFilter {
@Value("${jwt.secret}") @Value("${jwt.secret}")
private String secret; private String secret;
@Autowired @Autowired
private TokenService tokenService; private TokenService tokenService;
@ -60,6 +58,7 @@ public class ZuulPreFilter extends com.netflix.zuul.ZuulFilter {
@PostConstruct @PostConstruct
private void init() { private void init() {
//这是贪吃蛇吗?自己吃自己?
ArrayList<String> newList = new ArrayList<>(); ArrayList<String> newList = new ArrayList<>();
for (String s : should_not_filter) { for (String s : should_not_filter) {
newList.add(s.replaceAll("\\*\\*", "[^\\\\s]*")); newList.add(s.replaceAll("\\*\\*", "[^\\\\s]*"));
@ -84,7 +83,7 @@ public class ZuulPreFilter extends com.netflix.zuul.ZuulFilter {
String path = request.getRequestURI(); String path = request.getRequestURI();
String contextPath = request.getContextPath(); String contextPath = request.getContextPath();
String pathInfo = path.replaceFirst(contextPath, ""); String pathInfo = path.replaceFirst(contextPath, "");
//不过滤的跳过
boolean matches = false; boolean matches = false;
for (String s : should_not_filter) { for (String s : should_not_filter) {
Pattern pattern = Pattern.compile(s); Pattern pattern = Pattern.compile(s);
@ -92,6 +91,7 @@ public class ZuulPreFilter extends com.netflix.zuul.ZuulFilter {
matches = matcher.matches(); matches = matcher.matches();
if (matches) break; if (matches) break;
} }
//否则是需要过滤的
return !matches; return !matches;
} }
@ -114,7 +114,6 @@ public class ZuulPreFilter extends com.netflix.zuul.ZuulFilter {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
// String uri =ctx.getRequest().getRequestURI(); // String uri =ctx.getRequest().getRequestURI();

@ -85,6 +85,4 @@ public class JwtUtil {
} }
return claims; return claims;
} }
} }

@ -6,8 +6,8 @@
<version>1.0.0</version> <version>1.0.0</version>
<relativePath/> <relativePath/>
</parent> </parent>
<modelVersion>4.0.0</modelVersion>
<modelVersion>4.0.0</modelVersion>
<artifactId>ms-user</artifactId> <artifactId>ms-user</artifactId>
<name>ms-user</name> <name>ms-user</name>
<version>1.0.0</version> <version>1.0.0</version>

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
整体业务,就这么两大部分,第一部分和软件相关。流程图里面的桩企、协议都是现在平台实际的,就是这么多
Loading…
Cancel
Save