package controller.interceptor;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import service.Result;
import service.TokenManager;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;
/**
* @author aeolus
* @program SSMDemo
* @description
* @date 2021-05-08 17:32:03
*/
@Component
public class Interceptor implements HandlerInterceptor {
@Autowired
private TokenManager tokenManager;
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
HandlerMethod handlerMethod = (HandlerMethod) handler;
Method method = handlerMethod.getMethod();
String tokenValue = request.getHeader("tokenValue");
System.out.println("tokenValue:"+tokenValue);
if (tokenValue == null){
return true;
}
if (method.getAnnotation(Admin.class) != null && method.getAnnotation(User.class) != null) {
if (tokenManager.checkToken(tokenValue)
&&("admin".equals(tokenValue.split("_")[1])|| "user"
.equals(tokenValue.split("_")[1]) )){
System.out.println(1);
return true;
}
// 拦截
interceptor("管理员与普通用户", response);
return false;
} else if (method.getAnnotation(Developer.class) != null && method.getAnnotation(User.class) != null) {
if (tokenManager.checkToken(tokenValue)
&& ("developer".equals(tokenValue.split("_")[1])|| "user"
.equals(tokenValue.split("_")[1]) )){
System.out.println(2);
return true;
}
// 拦截
interceptor("开发者与普通用户", response);
return false;
} else if (method.getAnnotation(Admin.class) != null) {
if (tokenManager.checkToken(tokenValue)
&& "admin".equals(tokenValue.split("_")[1])){
System.out.println(3);
return true;
}
// 拦截
interceptor("管理员", response);
return false;
}else if (method.getAnnotation(Developer.class) != null) {
// 为staff
if (tokenManager.checkToken(tokenValue)
&& "developer".equals(tokenValue.split("_")[1])){
System.out.println(4);
return true;
}
// 拦截
interceptor("开发者", response);
return false;
}
System.out.println(5);
return true;
}
private void interceptor(String msg, HttpServletResponse response) {
Result result = new Result();
result.setMsg("非" + msg +",禁止操作");
PrintWriter out = null;
try {
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Type", "application/json; charset=UTF-8");
out = response.getWriter();
out.write(JSONObject.fromObject(result).toString());
} catch (IOException ie) {
ie.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
Spring + SpringMVC + Mybatis 项目 (540个子文件)
gradlew.bat 3KB
classAnalysis.bin 1.49MB
executionHistory.bin 244KB
taskHistory.bin 90KB
fileHashes.bin 28KB
sha1-checksums.bin 20KB
md5-checksums.bin 19KB
outputFiles.bin 19KB
last-build.bin 1B
EquipDao.class 4KB
EquipDao.class 4KB
AuthorizationInterceptor.class 4KB
Interceptor.class 4KB
Interceptor.class 4KB
EquipDataDao.class 3KB
EquipDataDao.class 3KB
MongoProperty.class 3KB
MongoProperty.class 3KB
MeasurementDao.class 3KB
EquipManageService.class 3KB
MeasurementDao.class 3KB
EquipManageService.class 3KB
WaypointDao.class 3KB
WaypointDao.class 3KB
StatusDao.class 3KB
StatusDao.class 3KB
AlertDao.class 3KB
AlertDao.class 3KB
UserManageService.class 3KB
UserManageService.class 3KB
Waypoint.class 3KB
Waypoint.class 3KB
EquipDataManageService.class 3KB
EquipDataManageService.class 3KB
UserController.class 2KB
UserController.class 2KB
RedisService.class 2KB
RedisService.class 2KB
MongoConfig.class 2KB
MongoConfig.class 2KB
Equip.class 2KB
Equip.class 2KB
EquipController.class 2KB
EquipController.class 2KB
TokenManager.class 2KB
TokenManager.class 2KB
Alert.class 2KB
Alert.class 2KB
Status.class 2KB
Status.class 2KB
Measurement.class 2KB
Measurement.class 2KB
EquipDataController.class 2KB
EquipDataController.class 2KB
Token.class 2KB
Token.class 2KB
User.class 2KB
User.class 2KB
EquipData.class 1KB
EquipData.class 1KB
Result.class 1KB
Result.class 1KB
BaseDao.class 539B
BaseDao.class 539B
Developer.class 394B
Developer.class 394B
UserDao.class 389B
UserDao.class 389B
Admin.class 386B
Admin.class 386B
User.class 384B
User.class 384B
UpdatastreamData.class 315B
UpdatastreamData.class 315B
http-client.cookies 0B
axure-chrome-extension.crx 31KB
axure-chrome-extension.crx 31KB
styles.css 36KB
styles.css 36KB
styles.css 34KB
styles.css 34KB
styles.css 33KB
styles.css 33KB
jquery-ui-themes.css 28KB
jquery-ui-themes.css 28KB
styles.css 23KB
styles.css 23KB
styles.css 21KB
styles.css 21KB
default.css 21KB
default.css 21KB
styles.css 11KB
styles.css 11KB
styles.css 8KB
styles.css 8KB
sitemap.css 8KB
sitemap.css 8KB
axure_rp_page.css 6KB
axure_rp_page.css 6KB
debug.css 5KB
共 540 条
- 1
- 2
- 3
- 4
- 5
- 6
十三月的天使
- 粉丝: 3
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0