首页>代码>ssm+apache shiro实现按钮级别的网站权限控制项目实例>/SSMShiro/src/main/java/com/sharainy/contoller/LoginController.java
package com.sharainy.contoller;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.IncorrectCredentialsException;
import org.apache.shiro.authc.LockedAccountException;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.sharainy.pojo.User;


/**
 *@标题LoginController
 * @作者: Sharainy
 * @创建时间: 2018-06-29 0029
 * @描述: 
 */
@RequestMapping(value = "/")
@Controller
public class LoginController {
    private static final Logger logger = LoggerFactory.getLogger(LoginController.class);

    @RequestMapping(value = "/login",method = RequestMethod.GET)
    public String login(){
        return "login";
    }

    @RequestMapping(value = "/login",method = RequestMethod.POST)
    public String login(User user, Model model){
        String username = user.getUsername();
        String password = user.getPassword();
        logger.debug("username => " + username);
        logger.debug("password => " + password);
        UsernamePasswordToken token = new UsernamePasswordToken(username,password);
        Subject subject = SecurityUtils.getSubject();
        String msg = null;
        try {
            subject.login(token);
        } catch (UnknownAccountException e) {
            e.printStackTrace();
            msg = e.getMessage();
        } catch (IncorrectCredentialsException e){
            e.printStackTrace();
            msg = "密码不匹配(生产环境中应该写:用户名和密码的组合不正确)";
        } catch (LockedAccountException e){
            e.printStackTrace();
            msg = e.getMessage();
        }
        if(msg == null){
            return "redirect:/admin/user/list";
        }

        model.addAttribute("msg",msg);
        return "login";
    }

    @RequestMapping(value = "/logout",method = RequestMethod.GET)
    public String logout(Model model){
        Subject subject = SecurityUtils.getSubject();
        subject.logout();
        model.addAttribute("msg","您已经退出登录");
        return "login";
    }

    @RequestMapping(value = "/unAuthorization")
    public String unAuthorization(){
        return "unAuthorization";
    }
}
最近下载更多
sweetbox  LV10 2022年7月11日
caozongan  LV19 2022年2月16日
543666826  LV33 2021年11月20日
Seem丶君  LV3 2021年10月18日
缘------  LV9 2021年6月28日
ericxu1116  LV24 2021年6月11日
黄雨地里  LV4 2021年5月15日
缓缓归来  LV11 2021年5月5日
panbiao  LV11 2021年3月31日
jiaerkai  LV10 2020年11月29日
最近浏览更多
xuweiwowzy  LV5 1月14日
Hachi6  LV13 2023年10月11日
矿泉水  LV30 2023年8月20日
dongzhan  LV12 2023年6月30日
wiston 2023年3月30日
暂无贡献等级
一颗葡萄 2022年11月22日
暂无贡献等级
sweetbox  LV10 2022年7月11日
暂无贡献等级
huaua7676  LV30 2022年4月17日
caozongan  LV19 2022年2月16日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友