首页>代码>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"; } }

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日

fire1234 LV2
2024年3月5日
xuweiwowzy LV5
2024年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日