shiro安全框架

安全问题

  1. 如何登录(登录验证)
  2. 权限管理(请求地址过滤)
  3. 页面内容的权限过滤(标签库)

Shiro简介

Apache shiro是一个强大且易用的JAVA安全框架通过shiro提供的api可以非常容易的程序中的认证登录验证),授权根据不同的用户配置不同的权限,加密(MD5不可逆的加密),和session管理等功能。

包括小型移动应用,大型WEB应用、企业级应用(OAERP)。

Shiro的工作原理

在过滤器基础上进行封装,通过配置文件,注解和标签(类似jstl)实现了一套功能非常强大的权限管理框架

核心概念(核心组件)

  Subject主体 —— session中的User对象 

  SecurityManger 安全管理——保安队长

  SessionManager 管理session  

  AuthorizingRealm 授权领域 (负责认证和授权)

  CacheManager 缓存

  RememberMeManager 记住密码的功能(不推荐使用)

Shiro的使用

  1. 使用shiro.ini 管理用户、角色、权限

标签库(<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>

<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<%--
  Created by IntelliJ IDEA.
  User: DELL
  Date: 2019/8/28
  Time: 16:04
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--                     property="userName"--%>
<div>你好! <shiro:principal></shiro:principal></div>

<div>登录可得</div>
<div>
    <h2>需要角色才能访问内容</h2>
    <shiro:hasRole name="admin">
        该内容只限admin角色才能查看
        <a href="#">删除</a>
    </shiro:hasRole>

    <shiro:lacksRole name="admin">
        没有admin角色看到的内容
    </shiro:lacksRole>
</div>

<div>
    <h2>某些特定权限看到的</h2>
    <div>
        <shiro:hasPermission name="create">
            当用户必须拥有create权限才能看到的这个内容
        </shiro:hasPermission>
    </div>
    <div>
        <shiro:lacksPermission name="create">
            这个用户没有create权限看到的
        </shiro:lacksPermission>
    </div>
</div>
</body>
</html>

权限配置说明

posted @ 2019-09-12 21:28  changlinlo  阅读(225)  评论(0编辑  收藏  举报