首页>代码>java设计好的后台权限管理的系统>/security/src/main/java/com/ketayao/security/controller/LoginController.java
/** * <pre> * Copyright: Copyright(C) 2011-2012, ketayao.com * Filename: com.ygsoft.security.controller.LoginController.java * Class: LoginController * Date: 2012-8-2 * Author: <a href="mailto:ketayao@gmail.com">ketayao</a> * Version 1.1.0 * Description: * * </pre> **/ package com.ketayao.security.controller; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.apache.shiro.web.filter.authc.FormAuthenticationFilter; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.ketayao.security.SecurityConstants; import com.ketayao.security.shiro.ShiroDbRealm; import com.ketayao.util.dwz.AjaxObject; /** * * @author <a href="mailto:ketayao@gmail.com">ketayao</a> Version 1.1.0 * @since 2012-8-2 下午5:29:01 */ @Controller @RequestMapping("/login") public class LoginController { private static final String LOGIN_PAGE = "login"; private static final String LOGIN_DIALOG = "management/index/loginDialog"; @RequestMapping(method = RequestMethod.GET) public String login(HttpServletRequest request) { return LOGIN_PAGE; } @RequestMapping(method = { RequestMethod.GET, RequestMethod.HEAD }, headers = "x-requested-with=XMLHttpRequest") public @ResponseBody String loginDialog(HttpServletRequest request) { AjaxObject ajaxObject = new AjaxObject("会话超时,请重新登录。"); ajaxObject.setStatusCode(AjaxObject.STATUS_CODE_TIMEOUT); ajaxObject.setCallbackType(AjaxObject.CALLBACK_TYPE_CLOSE_CURRENT); return ajaxObject.toString(); } @RequestMapping(value = "/timeout", method = { RequestMethod.GET }) public String timeout() { return LOGIN_DIALOG; } @RequestMapping(value = "/timeout/success", method = { RequestMethod.POST }) public @ResponseBody String timeoutSuccess(HttpServletRequest request) { Subject subject = SecurityUtils.getSubject(); ShiroDbRealm.ShiroUser shiroUser = (ShiroDbRealm.ShiroUser)subject.getPrincipal(); // 这个是放入user还是shiroUser呢? request.getSession().setAttribute(SecurityConstants.LOGIN_USER, shiroUser.getUser()); AjaxObject ajaxObject = new AjaxObject("登录成功。"); ajaxObject.setCallbackType(AjaxObject.CALLBACK_TYPE_CLOSE_CURRENT); return ajaxObject.toString(); } @RequestMapping(method = RequestMethod.POST) public String fail( @RequestParam(FormAuthenticationFilter.DEFAULT_USERNAME_PARAM) String username, Map<String, Object> map, HttpServletRequest request) { String msg = parseException(request); map.put("msg", msg); map.put("username", username); return LOGIN_PAGE; } @RequestMapping(method = { RequestMethod.POST, RequestMethod.HEAD }, headers = "x-requested-with=XMLHttpRequest") public @ResponseBody String failDialog(HttpServletRequest request) { String msg = parseException(request); AjaxObject ajaxObject = new AjaxObject(msg); ajaxObject.setStatusCode(AjaxObject.STATUS_CODE_FAILURE); ajaxObject.setCallbackType(""); return ajaxObject.toString(); } private String parseException(HttpServletRequest request) { String error = (String) request .getAttribute(FormAuthenticationFilter.DEFAULT_ERROR_KEY_ATTRIBUTE_NAME); String msg = "其他错误!"; if (error != null) { if ("org.apache.shiro.authc.UnknownAccountException".equals(error)) msg = "未知帐号错误!"; else if ("org.apache.shiro.authc.IncorrectCredentialsException" .equals(error)) msg = "密码错误!"; else if ("com.ygsoft.security.shiro.IncorrectCaptchaException" .equals(error)) msg = "验证码错误!"; else if ("org.apache.shiro.authc.AuthenticationException" .equals(error)) msg = "认证失败!"; else if ("org.apache.shiro.authc.DisabledAccountException" .equals(error)) msg = "账号被冻结!"; } return "登录失败," + msg; } }
最近下载更多
3127857649 LV1
2023年3月3日
WZW555 LV1
2022年5月18日
lsq54365 LV14
2021年11月13日
shaven LV2
2021年7月1日
yuting Wang LV9
2021年5月13日
你是傻子 LV9
2021年1月19日
zhang5 LV2
2020年12月26日
落轩昂 LV12
2020年9月24日
我是最靓的仔 LV1
2020年9月2日
didiaoD LV4
2020年8月19日
最近浏览更多
微信网友_6906962132258816 LV6
4月22日
微信网友_6829521472425984 LV5
1月20日
ww0408 LV1
2023年12月28日
Ji123455 LV8
2023年9月21日
黑 LV7
2023年8月28日
飞呀飞呀飞不放 LV7
2023年8月9日
胡修洋
2023年6月5日
暂无贡献等级
3127857649 LV1
2023年3月3日
xser3366 LV5
2023年2月7日
cxr2008 LV2
2022年12月13日