首页>代码>Spring4+Redis+Shiro集成学习项目实例>/spring_shiro_redis/src/main/java/com/zhm/ssr/controller/UserController.java
package com.zhm.ssr.controller;

import com.zhm.ssr.model.DataResult;
import com.zhm.ssr.model.UserInfo;
import com.zhm.ssr.service.UserInfoService;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * Created by zhm on 2015/7/10.
 */
@Controller
public class UserController {
    @Autowired
    private UserInfoService userInfoService;
    @RequestMapping("/login")
    public String login(HttpServletRequest request,HttpServletResponse respose) throws IOException {
        if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))) {
            respose.setContentType("text/html; utf-8");
            respose.getWriter().write("nologin");
            return null;
        }else{
            return "login";
        }
    }
    @RequestMapping(value="/user/doLogin")
    public String doLogin(String username,String password,String rememberMe,ModelMap model,HttpServletRequest request,HttpServletResponse response){

        Subject subject = SecurityUtils.getSubject();
        UsernamePasswordToken token = new UsernamePasswordToken(username, password);
        subject.logout();
        token.setRememberMe((rememberMe!=null&&"1".equals(rememberMe))?true:false);
        subject.login(token);
        try {

            response.sendRedirect(request.getContextPath()+"/home/main.html");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
    @RequestMapping(value="/user/logout")
    public @ResponseBody String logout(){
        Subject subject = SecurityUtils.getSubject();
        subject.logout();
        return "success";
    }
    @RequestMapping(value="/user/listAllUserJson")
    public @ResponseBody DataResult<UserInfo> listAllUserJson(int offset,int limit,String search,String order){
        search = search==null?"%%":"%"+search+"%";
        DataResult<UserInfo> result = new DataResult<UserInfo>();
        long totalRecords = userInfoService.findNumsByCond(search);
        result.setTotal(totalRecords);
        List<UserInfo> userInfos = userInfoService.findByCond(search,order,offset,limit);
        result.setRows(userInfos);
        return result;
    }
    @RequiresPermissions("admin:manage")
    @RequestMapping(value="/user/edit/del")
    public @ResponseBody String delUser(int id){
        userInfoService.delInfoById(id);
        return "success";
    }
}
最近下载更多
huangxiaoke20  LV17 2021年7月7日
aa991215  LV17 2021年3月15日
myj2006  LV11 2020年10月29日
sky丶小十  LV7 2020年9月27日
泪染珍珠  LV9 2020年9月8日
baozoumanhua  LV3 2020年7月30日
鬼燎孙  LV6 2020年4月1日
skipple3  LV39 2020年2月26日
g602270944  LV9 2020年1月7日
huahui235689  LV10 2019年12月13日
最近浏览更多
简约时尚  LV13 2月6日
guviva  LV6 2023年3月14日
banerwu  LV3 2023年1月3日
JiangYing009  LV8 2022年12月29日
qq1466625431  LV6 2022年6月28日
zhenghongixin4065  LV9 2022年4月4日
liuyu-zui  LV4 2021年8月25日
huangxiaoke20  LV17 2021年7月7日
秦sir3067683450  LV10 2021年6月2日
backier 2021年3月18日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友