-
大小: 31.53MB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2023-06-25
- 語(yǔ)言: 其他
- 標(biāo)簽: Shiro??權(quán)限控制??
資源簡(jiǎn)介
采用springMVC 和 shiro框架實(shí)現(xiàn)用戶登錄權(quán)限管理
代碼片段和文件信息
package?org.shiro.demo.controller;
import?java.awt.Color;
import?java.awt.image.BufferedImage;
import?java.io.IOException;
import?javax.imageio.ImageIO;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?javax.servlet.http.HttpSession;
import?org.apache.commons.lang.StringUtils;
import?org.apache.shiro.SecurityUtils;
import?org.apache.shiro.authc.AuthenticationException;
import?org.apache.shiro.authc.UsernamePasswordToken;
import?org.apache.shiro.subject.Subject;
import?org.apache.shiro.web.util.WebUtils;
import?org.shiro.demo.entity.User;
import?org.shiro.demo.util.ValidateCode;
import?org.springframework.stereotype.Controller;
import?org.springframework.web.bind.annotation.RequestMapping;
import?org.springframework.web.bind.annotation.RequestMethod;
@Controller
public?class?LoginController?{
@RequestMapping(value?=?“/login“)
public?String?login(User?userHttpSession?session?HttpServletRequest?request){
//?判斷驗(yàn)證碼
String?code?=?(String)?session.getAttribute(“validateCode“);
String?submitCode?=?WebUtils.getCleanParam(request?“validateCode“);
if?(StringUtils.isEmpty(submitCode)?||?!StringUtils.equals(codesubmitCode.toLowerCase()))?{
return?“redirect:/“;
}
//獲取當(dāng)前的Subject??
Subject?curUser?=?SecurityUtils.getSubject();
UsernamePasswordToken?token?=?new?UsernamePasswordToken(user.getAccount()user.getPassword());
token.setRememberMe(true);
try?{
?//在調(diào)用了login方法后SecurityManager會(huì)收到AuthenticationToken并將其發(fā)送給已配置的Realm執(zhí)行必須的認(rèn)證檢查??
????????????//每個(gè)Realm都能在必要時(shí)對(duì)提交的AuthenticationTokens作出反應(yīng)??
????????????//所以這一步在調(diào)用login(token)方法時(shí)它會(huì)走到ShiroDbRealm.doGetAuthenticationInfo()方法中
curUser.login(token);
return?“/system/main“;
}catch?(AuthenticationException?e)?{
//通過處理Shiro的運(yùn)行時(shí)AuthenticationException就可以控制用戶登錄失敗或密碼錯(cuò)誤時(shí)的情景
token.clear();
return?“redirect:/“;
}
}
/**
?*?生成驗(yàn)證碼
?*?@param?request
?*?@param?response
?*?@throws?IOException
?*/
@RequestMapping(value?=?“/validateCode“)
public?void?validateCode(HttpServletRequest?request?HttpServletResponse?response)?throws?IOException?{
?//設(shè)置頁(yè)面不緩存??
response.setHeader(“Cache-Control“?“no-cache“);
String?verifyCode?=?ValidateCode.generateTextCode(ValidateCode.TYPE_NUM_ONLY?4?null);
?//將驗(yàn)證碼放到HttpSession里面
request.getSession().setAttribute(“validateCode“?verifyCode);
?//設(shè)置輸出的內(nèi)容的類型為JPEG圖像
response.setContentType(“image/jpeg“);
BufferedImage?bim?=?ValidateCode.generateImageCode(verifyCode?90?30?3?true?Color.WHITE?Color.BLACK?null);
//寫給瀏覽器?
ImageIO.write(bim?“JPEG“?response.getOutputStream());
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????6115??2013-10-26?11:17??ShiroHibernateSpringDemo\.classpath
?????文件????????345??2013-11-01?14:21??ShiroHibernateSpringDemo\.myme
?????文件???????1767??2013-10-17?21:02??ShiroHibernateSpringDemo\.project
?????文件????????500??2013-10-17?21:02??ShiroHibernateSpringDemo\.settings\.jsdtscope
?????文件???????1009??2013-10-17?21:02??ShiroHibernateSpringDemo\.settings\com.genuitec.eclipse.j2eedt.core.prefs
?????文件?????????57??2013-10-17?21:07??ShiroHibernateSpringDemo\.settings\org.eclipse.core.resources.prefs
?????文件????????364??2013-10-17?21:02??ShiroHibernateSpringDemo\.settings\org.eclipse.jdt.core.prefs
?????文件????????587??2013-10-17?21:02??ShiroHibernateSpringDemo\.settings\org.eclipse.wst.common.component
?????文件????????252??2013-10-17?21:02??ShiroHibernateSpringDemo\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件?????????49??2013-10-17?21:02??ShiroHibernateSpringDemo\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件??????????6??2013-10-17?21:02??ShiroHibernateSpringDemo\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件???????4231??2013-10-29?11:11??ShiroHibernateSpringDemo\config\applicationContext-shiro.xm
?????文件???????3699??2013-10-29?12:41??ShiroHibernateSpringDemo\config\applicationContext.xm
?????文件????????351??2013-10-27?16:28??ShiroHibernateSpringDemo\config\ehcache-shiro.xm
?????文件????????689??2013-10-18?17:27??ShiroHibernateSpringDemo\config\ehcache.xm
?????文件????????524??2013-10-26?21:51??ShiroHibernateSpringDemo\config\jdbc.properties
?????文件????????626??2013-06-11?00:01??ShiroHibernateSpringDemo\config\log4j.properties
?????文件???????3402??2013-10-28?20:07??ShiroHibernateSpringDemo\config\spring-mvc.xm
?????文件???????1205??2013-10-18?16:21??ShiroHibernateSpringDemo\readme.txt
?????文件???????2972??2013-10-28?20:57??ShiroHibernateSpringDemo\src\org\shiro\demo\controller\LoginController.java
?????文件???????1161??2013-10-28?20:57??ShiroHibernateSpringDemo\src\org\shiro\demo\controller\UserController.java
?????文件???????4815??2013-10-18?15:41??ShiroHibernateSpringDemo\src\org\shiro\demo\dao\Iba
?????文件???????9049??2013-10-18?12:56??ShiroHibernateSpringDemo\src\org\shiro\demo\dao\impl\Defultba
?????文件????????711??2013-06-11?00:23??ShiroHibernateSpringDemo\src\org\shiro\demo\dao\util\CustomDateSerializer.java
?????文件???????4108??2013-06-11?00:23??ShiroHibernateSpringDemo\src\org\shiro\demo\dao\util\Pagination.java
?????文件???????1950??2013-06-11?00:23??ShiroHibernateSpringDemo\src\org\shiro\demo\dao\util\QueryCondition.java
?????文件???????2278??2013-10-26?21:45??ShiroHibernateSpringDemo\src\org\shiro\demo\entity\Permission.java
?????文件???????1969??2013-10-26?21:44??ShiroHibernateSpringDemo\src\org\shiro\demo\entity\Role.java
?????文件???????2231??2013-10-26?21:45??ShiroHibernateSpringDemo\src\org\shiro\demo\entity\User.java
?????文件???????2647??2013-10-26?21:47??ShiroHibernateSpringDemo\src\org\shiro\demo\junit\testInitSystemData.java
............此處省略237個(gè)文件信息
評(píng)論
共有 條評(píng)論