yonge há 5 anos atrás
pai
commit
331afc77ec

+ 2 - 9
mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java

@@ -24,15 +24,8 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 
 	@Override
 	public void configure(HttpSecurity http) throws Exception {
-		http.csrf()
-				.disable()
-				.exceptionHandling()
-				.accessDeniedHandler(baseAccessDeniedHandler)
-				.authenticationEntryPoint(baseAuthenticationEntryPoint)
-				.and()
-				.authorizeRequests()
-				.antMatchers("/v2/api-docs", "/register/getMusicGroupRegInfo", "/register/add", "musicGroup/getSubjectGoodsAndInfo", "/musicGroup/test",
-						"/studentOrder/notify").permitAll().anyRequest().authenticated().and().httpBasic();
+		http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
+				.authorizeRequests().antMatchers("/v2/api-docs").permitAll().anyRequest().authenticated().and().httpBasic();
 	}
 
 	@Override

+ 26 - 7
mec-student/src/main/java/com/ym/mec/student/config/WebMvcConfig.java

@@ -3,19 +3,25 @@ package com.ym.mec.student.config;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 import com.ym.mec.common.config.EnumConverterFactory;
 import com.ym.mec.common.config.LocalFastJsonHttpMessageConverter;
+import com.ym.mec.student.interceptor.RequestInterceptor;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {
 
+	@Autowired
+	private RequestInterceptor requestInterceptor;
+
 	/**
 	 * 枚举类的转换器 addConverterFactory
 	 */
@@ -23,14 +29,27 @@ public class WebMvcConfig implements WebMvcConfigurer {
 	public void addFormatters(FormatterRegistry registry) {
 		registry.addConverterFactory(new EnumConverterFactory());
 	}
-	
+
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		// addPathPatterns 用于添加拦截规则, 这里假设拦截 /url 后面的全部链接
+		List<String> includePathPatterns = new ArrayList<String>();
+		includePathPatterns.add("/**");
+
+		// excludePathPatterns 用户排除拦截
+		List<String> excludePathPatterns = new ArrayList<String>();
+		excludePathPatterns.add("/login");
+
+		registry.addInterceptor(requestInterceptor).addPathPatterns(includePathPatterns).excludePathPatterns(excludePathPatterns);
+	}
+
 	@Bean
-    public HttpMessageConverters fastJsonHttpMessageConverters(){
+	public HttpMessageConverters fastJsonHttpMessageConverters() {
 		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
-        List<MediaType> fastMediaTypes =  new ArrayList<MediaType>();
-        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
-        converter.setSupportedMediaTypes(fastMediaTypes);
-        return new HttpMessageConverters(converter);
-    }
+		List<MediaType> fastMediaTypes = new ArrayList<MediaType>();
+		fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
+		converter.setSupportedMediaTypes(fastMediaTypes);
+		return new HttpMessageConverters(converter);
+	}
 
 }

+ 36 - 0
mec-student/src/main/java/com/ym/mec/student/interceptor/RequestInterceptor.java

@@ -0,0 +1,36 @@
+package com.ym.mec.student.interceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.MDC;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import com.ym.mec.util.web.WebUtil;
+
+@Component
+public class RequestInterceptor extends HandlerInterceptorAdapter {
+
+	private static final String IP = "ip";
+
+	private static final String USERNAME = "username";
+
+	@Override
+	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+
+		String username = "";
+		String userId = "";
+		// 存储userId以及IP
+		MDC.put(USERNAME, username + "@" + userId);
+		MDC.put(IP, WebUtil.getRemoteIp(request));
+
+		return true;
+	}
+
+	@Override
+	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+		MDC.remove(USERNAME);
+		MDC.remove(IP);
+	}
+}