http三种拦截器
- HandlerInterceptor是Controller拦截器
- ClientHttpRequestInterceptor是RestTemplate的拦截器
- RequestInterceptor是Feign拦截器
防止session固定攻击
- 编写登录方法
@PostMapping("/login") public void login(String username, String password, HttpServletRequest request){ // 防止session固定攻击 HttpSession session = request.getSession(false); if (session !=null){ session.invalidate(); } session = request.getSession(true); User user = service.login(username, password); session.setAttribute("user", user); }
跨域配置
- 注解驱动:@CrossOrigin
@RestController public class HelloController { @CrossOrigin @GetMapping("/hello") public Map<String,String> hello(String message){ Map<String,String> map = new HashMap<>() ; map.put("code","200") ; map.put("msg","success") ; map.put("data", message) ; return map ; } }
- 代码驱动: WebMvcConfigurer#addCorsMappings
@Configuration public class RestWebMvcConfigurer implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedOrigins("*") ; } }
- Filter组件:CorsFilter
异步Controller
- 异步代码片段
@GetMapping("/asyncHello") public DeferredResult<String> asyncHello(){ DeferredResult<String> result = new DeferredResult<>() ; result.setResult("hello world " + LocalDateTime.now()) ; result.onCompletion(()->{ log.info("异步业务执行结束.."); }); return result ; }
杂记
- HttpServletRequestWrapper的使用
private static class HttpMethodRequestWrapper extends HttpServletRequestWrapper { private final String method; public HttpMethodRequestWrapper(HttpServletRequest request, String method) { super(request); this.method = method; } @Override public String getMethod() { return this.method; } }
- 将FirstServlet文件夹打包成FirstServlet.war文件
2.1 cd 到FirstServlet文件夹内 2.2 命令执行:jar cvf ../FirstServlet.war *
Mybatis打印sql在Springboot中配置
- 在application.properties中添加配置
logging.level.com.yicj.content.mapper: debug
版权声明:本文为yichengjie_c原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。