首页>代码>shiro入门应用示例(采用spring+springmvc+mybatis+shiro)>/shirodemo/src/cn/ssms/controller/UserControler.java
package cn.ssms.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import cn.ssms.model.User; import cn.ssms.realm.ShiroDbRealm; import cn.ssms.service.UserService; import cn.ssms.util.CipherUtil; import cn.ssms.util.EncryptUtils; @Controller public class UserControler { private static Logger logger = LoggerFactory.getLogger(ShiroDbRealm.class); @Autowired private UserService userService; /** * 测试springmvc与mybatis整合成功 * @param id * @param request * @return */ @RequestMapping("/{id}/showUser") public String showUser(@PathVariable int id, HttpServletRequest request) { User user = userService.getUserById(id); System.out.println(user.getName()); request.setAttribute("user", user); return "showUser"; } /** * 跳转至登录页 * @param request * @return */ @RequestMapping("/tologin") public String tologin(HttpServletRequest request, HttpServletResponse response, Model model){ logger.debug("来自IP[" + request.getRemoteHost() + "]的访问"); return "login"; } /** * 登录示例 * @param request * @return */ @RequestMapping("/login") public String login(HttpServletRequest request) { String result = "login"; // 此处默认有值 String username = request.getParameter("username"); //MD5加密 String password = CipherUtil.generatePassword(request.getParameter("password")); //String password = request.getParameter("password"); UsernamePasswordToken token = new UsernamePasswordToken(username, password); Subject currentUser = SecurityUtils.getSubject(); try { System.out.println("----------------------------"); if (!currentUser.isAuthenticated()){ token.setRememberMe(true); currentUser.login(token); } System.out.println("result: " + result); result = "index"; } catch (Exception e) { logger.error(e.getMessage()); result = "login"; } return result; } /** * 登出 * @return */ @RequestMapping(value = "/logout") @ResponseBody public String logout() { Subject currentUser = SecurityUtils.getSubject(); String result = "logout"; currentUser.logout(); return result; } /** * 检查 * @return */ @RequestMapping(value = "/chklogin", method = RequestMethod.POST) @ResponseBody public String chkLogin() { Subject currentUser = SecurityUtils.getSubject(); if (!currentUser.isAuthenticated()) { return "false"; } return "true"; } }
![](https://static.zuidaima.com/resource/img/heart_ico.png)
13043860zj LV16
2021年5月28日
1666568158 LV2
2021年3月21日
zhujunnan LV12
2020年9月3日
king_zdm LV1
2020年6月17日
1798672867 LV21
2020年5月19日
17704627276 LV17
2020年5月3日
C544350851 LV26
2020年3月27日
saaulll LV4
2020年3月17日
shijiangchen LV2
2020年3月16日
代码外星人 LV2
2020年1月13日
![](https://static.zuidaima.com/resource/img/cattle_ico.png)
fire1234 LV2
3月5日
xuweiwowzy LV5
1月14日
森sdfgf LV8
2023年6月28日
Wu_大花 LV1
2023年3月26日
hesu2020 LV1
2023年3月20日
a1017514773 LV6
2023年3月14日
wz520135 LV7
2022年12月22日
好的好的 LV8
2022年11月18日
forswear1234
2022年9月4日
暂无贡献等级
show123 LV2
2022年6月17日