ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

访问主页'/'进行用户信息验证

2020-02-29 10:42:29  阅读:223  来源: 互联网

标签:return String 主页 验证 URL xxlUser request 访问 Conf


@Controller
public class WebController extends BaseWebController {
	@Autowired
	private MemberServiceFeign memberServiceFeign;

	@RequestMapping("/")
	public String index(Model model, HttpServletRequest request, HttpServletResponse response) {

		// login check
		XxlSsoUser xxlUser = SsoWebLoginHelper.loginCheck(request, response);

		if (xxlUser == null) {
			return "redirect:/login";
		} else {
			model.addAttribute("xxlUser", xxlUser);
			return "index";
		}
	}

	/**
	 * Login page
	 *
	 * @param model
	 * @param request
	 * @return
	 */
	@RequestMapping(Conf.SSO_LOGIN)
	public String login(Model model, HttpServletRequest request, HttpServletResponse response) {

		// login check
		XxlSsoUser xxlUser = SsoWebLoginHelper.loginCheck(request, response);

		if (xxlUser != null) {

			// success redirect
			String redirectUrl = request.getParameter(Conf.REDIRECT_URL);
			if (redirectUrl != null && redirectUrl.trim().length() > 0) {

				String sessionId = SsoWebLoginHelper.getSessionIdByCookie(request);
				String redirectUrlFinal = redirectUrl + "?" + Conf.SSO_SESSIONID + "=" + sessionId;
				;

				return "redirect:" + redirectUrlFinal;
			} else {
				return "redirect:/";
			}
		}

		model.addAttribute("errorMsg", request.getParameter("errorMsg"));
		model.addAttribute(Conf.REDIRECT_URL, request.getParameter(Conf.REDIRECT_URL));
		return "login";
	}

	/**
	 * Login
	 *
	 * @param request
	 * @param redirectAttributes
	 * @param username
	 * @param password
	 * @return
	 */
	@RequestMapping("/doLogin")
	public String doLogin(HttpServletRequest request, HttpServletResponse response,
			RedirectAttributes redirectAttributes, String username, String password, String ifRemember) {

		boolean ifRem = (ifRemember != null && "on".equals(ifRemember)) ? true : false;

		// valid login 调用会员服务进行验证
		// ReturnT<UserInfo> result = userService.findUser(username, password);
		// if (result.getCode() != ReturnT.SUCCESS_CODE) {
		// redirectAttributes.addAttribute("errorMsg", result.getMsg());
		//
		// redirectAttributes.addAttribute(Conf.REDIRECT_URL,
		// request.getParameter(Conf.REDIRECT_URL));
		// return "redirect:/login";
		// }
		// >>>>>>>认证授权中心调用会员服务接口进行验证
		UserLoginInpDTO userLoginInpDTO = new UserLoginInpDTO();
		userLoginInpDTO.setLoginType(Constants.MEMBER_LOGIN_TYPE_PC);
		userLoginInpDTO.setMobile(username);
		userLoginInpDTO.setPassword(password);
		String info = webBrowserInfo(request);
		userLoginInpDTO.setDeviceInfor(info);
		BaseResponse<UserOutDTO> ssoLogin = memberServiceFeign.ssoLogin(userLoginInpDTO);
		if (!isSuccess(ssoLogin)) {
			redirectAttributes.addAttribute("errorMsg", ssoLogin.getMsg());
			redirectAttributes.addAttribute(Conf.REDIRECT_URL, request.getParameter(Conf.REDIRECT_URL));
			return "redirect:/login";
		}
		UserOutDTO data = ssoLogin.getData();
		if (data == null) {
			redirectAttributes.addAttribute("errorMsg", "没有获取用户信息");
			redirectAttributes.addAttribute(Conf.REDIRECT_URL, request.getParameter(Conf.REDIRECT_URL));
			return "redirect:/login";
		}
		XxlSsoUser xxlUser = new XxlSsoUser();
		xxlUser.setUserid(String.valueOf(data.getUserId()));
		xxlUser.setUsername(data.getUserName());
		xxlUser.setVersion(UUID.randomUUID().toString().replaceAll("-", ""));
		xxlUser.setExpireMinite(SsoLoginStore.getRedisExpireMinite());
		xxlUser.setExpireFreshTime(System.currentTimeMillis());

		// 2、make session id
		String sessionId = SsoSessionIdHelper.makeSessionId(xxlUser);

		// 3、login, store storeKey + cookie sessionId
		SsoWebLoginHelper.login(response, sessionId, xxlUser, ifRem);

		// 4、return, redirect sessionId
		String redirectUrl = request.getParameter(Conf.REDIRECT_URL);
		if (redirectUrl != null && redirectUrl.trim().length() > 0) {
			String redirectUrlFinal = redirectUrl + "?" + Conf.SSO_SESSIONID + "=" + sessionId;
			return "redirect:" + redirectUrlFinal;
		} else {
			return "redirect:/";
		}

	}

	/**
	 * Logout
	 *
	 * @param request
	 * @param redirectAttributes
	 * @return
	 */
	@RequestMapping(Conf.SSO_LOGOUT)
	public String logout(HttpServletRequest request, HttpServletResponse response,
			RedirectAttributes redirectAttributes) {

		// logout
		SsoWebLoginHelper.logout(request, response);

		redirectAttributes.addAttribute(Conf.REDIRECT_URL, request.getParameter(Conf.REDIRECT_URL));
		return "redirect:/login";
	}

}

 

君子志邦 发布了307 篇原创文章 · 获赞 15 · 访问量 6万+ 私信 关注

标签:return,String,主页,验证,URL,xxlUser,request,访问,Conf
来源: https://blog.csdn.net/u011488009/article/details/104570011

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有