0x00 问题描述 & 背景
随着项目的推进,增加了权限控制模块,具体控制到接口层(controller)。每次调用接口时需要校验用户是否有权限。用的方案是spring的拦截器。
前端(APP)所有的请求都会携带参数sessionId,作为用户的标识。其中Get请求参数是通过url传递的,post请求参数是通过二进制流传递的。
拦截器在获取sessionId的时候先执行request.getParameter("sessionId")
,如果没有拿到sessionId,则调用request.getInputStream()
获取流信息。具体代码如下:
private String getSessionId(HttpServletRequest request) {
String sessionId = request.getParameter("sessionId");
if (sessionId == null) {
// 参数也可能为sessionid
sessionId = request.getParameter("sessionid");
}
if (sessionId == null) {
// post请求
String data = getRequestStringData(request);
System.out.println("data = " + data);
if (data.length() > 0) {
// TODO get SeesionId fr