@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface UserAccess {
}
@Service
public class LoginService {
/**
* 存放“用户名:token”键值对
*/
public static Map<String,String> tokenMap=new HashMap<String,String>();
/**
* 存放“token:User”键值对
*/
public static Map<String,User> loginUserMap=new HashMap<String,User>();
public String login(String name,String password){
System.out.println(name+"-----"+password);
/**
* 判断是否登录成功
* 1.登录成功
* 1.1.成功生成对应的token并更新
* 1.2.失败就抛异常
*/
String token=tokenMap.get(name);
User user=null;
if(token==null){
user=new User();
user.setName(name);
user.setPassword(password);
System.out.println("新用户登录");
}else{
user=loginUserMap.get(token);
loginUserMap.remove(token);
System.out.println("更新用户登录token");
}
token=MD5Util.MD5(name+password+new Date().getTime());
loginUserMap.put(token, user);
tokenMap.put(name, token);
System.out.println("目前有"+tokenMap.size()+"个用户");
for(User u:loginUserMap.values()){
System.out.println(u.getName()+":"+u.getPassword());
}
return token;
}
}
@Controller
@RequestMapping("/login")
public class LoginController {
@Autowired
private LoginService loginService;
@UserAccess
@RequestMapping(value="/loginin",method=RequestMethod.GET)
public @ResponseBody String login(HttpServletRequest request){
String name=request.getParameter("name");
String password=request.getParameter("password");
String token=loginService.login(name, password);
return token;
}
}
@Component
@Aspect
public class PermissionAspect {
//设置以自定义annotation作为切入点
@Before("@annotation(com.example.chap01.annotation.UserAccess)")
public void checkPermission(JoinPoint joinPoint) throws Exception{
System.out.println("前置通知");
//获取拦截的请求参数
Object[] args = joinPoint.getArgs();
HttpServletRequest request=(HttpServletRequest)args[0];
String token=request.getParameter("token");
System.out.println("前置通知 token:"+token);
User user=LoginService.loginUserMap.get(token);
if(user==null){
System.out.println("验证不通过!");
throw new Exception("没有权限");
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有