1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package com.jeff.tianti.controller;
- import java.util.List;
- import javax.servlet.http.HttpServletRequest;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.shiro.SecurityUtils;
- import org.apache.shiro.authc.AuthenticationException;
- import org.apache.shiro.authc.LockedAccountException;
- import org.apache.shiro.authc.UsernamePasswordToken;
- import org.apache.shiro.subject.Subject;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.RequestMapping;
- import com.jeff.tianti.common.util.Md5Util;
- import com.jeff.tianti.org.entity.Resource;
- import com.jeff.tianti.util.WebHelper;
- @Controller
- public class LoginController {
-
- @RequestMapping("/login")
- public String login(){
- return "login";
- }
-
- @RequestMapping("/do_login")
- public String doLogin(HttpServletRequest request, Model model){
-
- String username = request.getParameter("username");
- String pwd = request.getParameter("pwd");
-
- boolean rememberMe = false;
-
- String md5Pwd = Md5Util.generatePassword(pwd);
-
- try {
- UsernamePasswordToken token = new UsernamePasswordToken(username, md5Pwd, rememberMe);
-
- Subject subject = SecurityUtils.getSubject();
-
- subject.login(token);
-
- //跳转第一个菜单
- List<Resource> hasResource = (List<Resource>) request.getSession().getAttribute(WebHelper.SESSION_MENU_RESOURCE);
- if(hasResource != null && !hasResource.isEmpty()){
- for(Resource resource : hasResource){
-
- List<Resource> chResources = resource.getChildren();
- if(StringUtils.isNotBlank(resource.getUrl()) && (chResources == null || chResources.isEmpty())){
- return "redirect:" + resource.getUrl();
- }
- if(chResources != null && !chResources.isEmpty()){
- for(Resource chRes : chResources){
- if(StringUtils.isNotBlank(chRes.getUrl())){
- return "redirect:" + chRes.getUrl();
- }
- }
- }
- }
- }
-
- return "redirect:/user/list";
- } catch (LockedAccountException lae) {
- // lae.printStackTrace();
- model.addAttribute("msg", "账号已被禁用");
- } catch (AuthenticationException ae) {
- // ae.printStackTrace();
- model.addAttribute("msg", "账号或密码错误");
- } catch (Exception e) {
- // e.printStackTrace();
- model.addAttribute("msg", "登录异常");
- }
-
- return "login";
- }
-
- @RequestMapping("/login_out")
- public String loginOut(HttpServletRequest request){
-
- Subject subject = SecurityUtils.getSubject();
- subject.logout();
-
- return "redirect:/login";
- }
- }
|