SpringBootブロッキング詳細構成
3322 ワード
SpringBootブロッキング詳細構成
一、ymlファイル構成
三、ブロッカーはアクセス可能と非アクセスの集合を取得する
四、ブロック制御類
一、ymlファイル構成
path:
include:
- /*/*
exclude:
- /swagger-ui.html/**
- /v2/**
- /user/login
- /dev/**
- /test/**
、 Config yml
@Component
@ConfigurationProperties(prefix = "path")
public class PathConfig {
private List include = new ArrayList<>();
private List exclude = new ArrayList<>();
public List getInclude() {
return include;
}
public void setInclude(List include) {
this.include = include;
}
public List getExclude() {
return exclude;
}
public void setExclude(List exclude) {
this.exclude = exclude;
}
}
三、ブロッカーはアクセス可能と非アクセスの集合を取得する
/**
* @Author songmo
* @Date 2020/4/17 11:26
* @Description
*/
@Configuration
public class LoginAdapter implements WebMvcConfigurer {
@Autowired
private PathConfig pathConfig;
@Override
public void addInterceptors(InterceptorRegistry registry) {
InterceptorRegistration ir = registry.addInterceptor(new LoginInterceptor());
//
ir.addPathPatterns(pathConfig.getInclude());
//
ir.excludePathPatterns(pathConfig.getExclude());
}
}
四、ブロック制御類
/**
*@Author songmo
*@Date 2020/4/17 11:23
*@Description
*/
public class LoginInterceptor implements HandlerInterceptor {
private static Logger LOGGER = LoggerFactory.getLogger(LoginInterceptor.class);
/**
*@Author songmo
*@Date 2020/4/17 11:25
*@Description (Controller )
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
// ( session user)( user , session)
User user=(User)request.getSession().getAttribute("user");
if(user != null){
return true;
}
// response 403
// response.setStatus(403);
try {
PrintWriter out = response.getWriter();
ResponseInfo responseInfo = ResponseInfo.ok();
responseInfo.setCode(403);
out.append(JSON.toJSONString(responseInfo));
}catch (Exception e){
LOGGER.error(" ", e);
response.setStatus(500);
}
// false , ,
// true ,
return false;
}
/**
*@Author songmo
*@Date 2020/4/17 11:24
*@Description , (Controller )
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
// LOGGER.info(" TestInterceptor postHandle ");
}
/**
*@Author songmo
*@Date 2020/4/17 11:25
*@Description , DispatcherServlet ( )
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
// LOGGER.info(" TestInterceptor afterCompletion ");
}
}