SSM药品管理系统Spring+Shiro+MyBatis+LayUI

*简介 :本课程采用Spring+MyBatis+Shiro完成药品库存管理系统,项目分为两类用户,数据库设、编码到页面展示全手工一步一步编写。
在以前的开发中都是采用 action 方法中编写相应的业务,现在我们建立一个 realm 实现数据处理(包括认证、授权);
这个类不需要手工编写了,在之前 shiro 课程中都有详细的说明;

 范例:登录认证 
@Override 
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws 
AuthenticationException { 
    log.info("========登录授权认证========"); 
    // 1 、取得用户名
 
    String username = (String) authenticationToken.getPrincipal(); 
    try { 
        Admin vo = this.adminService.show(username); 
        if (vo == null) { 
            throw new UnknownAccountException("用户不存在!"); 
        } else { 
            
// 2 、取得登录密码
 
            String password = (new String((char[]) authenticationToken.getCredentials())); 
            if (vo.getPassword().equals(password)) { 
                AuthenticationInfo auth = new SimpleAuthenticationInfo(username, password, "adminRealm"); 
                return auth; 
            } else { 
                throw new IncorrectCredentialsException("密码错误!"); 
            } 
        } 
    } catch (Exception e) { 
        e.printStackTrace(); `
    } 
    return null; 
} 
 范例:修改 applicationContext.xml 文件 
<! -- 配置 SecurityManager 的管理
 
-- > 
<bean id="adminRealm" class="cn.xmkeshe.realm.AdminRealm"/> 
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> 
    <! -- 配置需要使用的 Realm -- > 
    <property name="realm" ref="adminRealm"/> 
</bean> 
 范例:定义控制层代码实现登录检测 
@RequestMapping("login") 
public void login(Admin vo, HttpServletResponse response) throws IOException { 
    // 数据验证
 
    if (ValidateUtils. validateEmpty (vo.getAid()) && ValidateUtils. validateEmpty (vo.getPassword())) { 
        String aid = vo.getAid(); // aid 
        String password = new MD5Code().getMD5ofStr(vo.getPassword()); 
        UsernamePasswordToken token = new UsernamePasswordToken(aid, password); 
        Subject sub = SecurityUtils. getSubject (); 
        response.getWriter().print("success"); 
        sub.login(token); 
    } else { 
        response.getWriter().print("errorNull"); 
  ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200421172356234.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lsY3Rv,size_16,color_FFFFFF,t_70#pic_center)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章