shiro授权以及注解式开发,前端期末考试选择题

登录成功后进入页面

点击用户新增时会进入断点

然后出现以下界面

返回再次点击用户新增时,又会进入断点,说明shiro每次都会进入数据库,查看你是否有权限,说明shiro的安全性极高,但是由于每次请求都要访问数据库,所以性能不好,这里可以使用redis缓存

没有权限的原因是在applicationContext-shiro文件中配置的权限是这样的

而数据库中普通用户的id为1,所以应该将admin改为1

再次访问  就有权限了

二、注解式开发

=======

常用注解介绍

@RequiresAuthenthentication:表示当前Subject已经通过login进行身份验证;即 Subject.isAuthenticated()返回 true

@RequiresUser:表示当前Subject已经身份验证或者通过记住我登录的

@RequiresGuest:表示当前Subject没有身份验证或者通过记住我登录过,即是游客身份

@RequiresRoles(value = {“admin”,“user”},logical = Logical.AND):表示当前Subject需要角色admin和user

@RequiresPermissions(value = {“user:delete”,“user:b”},logical = Logical.OR):表示当前Subject需要权限user:delete或者user:b

建立AnnotationController类

**package com.ltf.controller;

import org.apache.shiro.authz.annotation.Logical;

import org.apache.shiro.authz.annotation.RequiresPermissions;

import org.apache.shiro.authz.annotation.RequiresRoles;

import org.apache.shiro.authz.annotation.RequiresUser;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;

@Controller

public class AnnotationController {

//只有登录才能访问

@RequiresUser

@RequestMapping(“/passUser”)

public String passUser(HttpServletRequest request){

return “admin/addUser”;

}

//拥有roleid为1和4的角色才能访问

@RequiresRoles(value = {“1”,“4”},logical = Logical.AND)

@RequestMapping(“/passRole”)

public String passRole(HttpServletRequest request){

return “admin/listUser”;

}

//拥有修改和查看的权限才能访问

@RequiresPermissions(value = {“user:update”,“user:view”},logical = Logical.OR)

@RequestMapping(“/passPer”)

public String passPer(HttpServletRequest request){

return “admin/resetPwd”;

}

@RequestMapping(“/unauthorized”)

public String unauthorized(){

return “unauthorized”;

}

}**

@Controller注解是为了交给spring处理

AnnotationController 是直接处理浏览器的请求,也就说明了shiro要与springMVC配合使用

也就意味着要在springMVC中进行配置

<bean class=“org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator”

depends-on=“lifecycleBeanPostProcessor”>

unauthorized

测试代码

<%–

Created by IntelliJ IDEA.

User: 小宝的宝

Date: 2021/12/17

Time: 20:50

To change this template use File | Settings | File Templates.

–%>

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

Title

hello springMVC

    shiro注解

    用户认证

    角色

    权限认证

    运行代码

    当登录后用户认证可以点击跳到

    小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

    深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
    因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

    img
    img
    img
    img

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

    如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
    img

    存中…(img-sY7uHIHl-1710890525557)]
    [外链图片转存中…(img-GaDHMDFJ-1710890525558)]
    [外链图片转存中…(img-P6B6WSWv-1710890525558)]
    [外链图片转存中…(img-haFgwvUu-1710890525558)]

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

    如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
    [外链图片转存中…(img-eI6C7Kqo-1710890525558)]

    • 26
      点赞
    • 23
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值