Пример #1
0
  @ResponseBody
  @RequestMapping("noLogin")
  public String noLogin(@RequestParam("uname") String uname) {

    if (ValidateUtil.isValid(uname)) {
      AdminUser result = adminUserService.noLogin(uname);
      // 用户不存在
      if (!ValidateUtil.isValid(result.getId())) {
        adminUserService.saveOrUpdateEntiry(result);
      }

      UserDetailsService detail = (UserDetailsService) SpringContextUtil.getBean("myUserDetail");
      UserDetails details = null;
      try {

        details = detail.loadUserByUsername(result.getName());
      } catch (Exception e) {
        return "用户未找到";
      }

      UsernamePasswordAuthenticationToken authenticationToken =
          new UsernamePasswordAuthenticationToken(details, null, details.getAuthorities());

      SecurityContextHolder.getContext().setAuthentication(authenticationToken);

      HttpSession session = getRequest().getSession(true); //
      session.setAttribute("SPRING_SECURITY_CONTEXT", SecurityContextHolder.getContext());
    }
    return "redirect:/user";
  }