【第六篇】SpringSecurity的权限管理

一、权限管理的实现

服务端的各种资源要被SpringSecurity的权限管理控制可以通过注解和标签两种方式来处理。

image.png

放开了相关的注解后在Controller中就可以使用相关的注解来控制了

JSR250注解

/**
 * JSR250
 */
@Controller
@RequestMapping("/user")
public class UserController {

    @RolesAllowed(value = {"ROLE_ADMIN"})
    @RequestMapping("/query")
    public String query(){
        System.out.println("用户查询....");
        return "/home.jsp";
    }
    @RolesAllowed(value = {"ROLE_USER"})
    @RequestMapping("/save")
    public String save(){
        System.out.println("用户添加....");
        return "/home.jsp";
    }

    @RequestMapping("/update")
    public String update(){
        System.out.println("用户更新....");
        return "/home.jsp";
    }
}

Spring表达式

/**
 * Spring表达式
 */
@Controller
@RequestMapping("/order")
public class OrderController {

    @PreAuthorize(value = "hasAnyRole('ROLE_USER')")
    @RequestMapping("/query")
    public String query(){
        System.out.println("用户查询....");
        return "/home.jsp";
    }
    @PreAuthorize(value = "hasAnyRole('ROLE_ADMIN')")
    @RequestMapping("/save")
    public String save(){
        System.out.println("用户添加....");
        return "/home.jsp";
    }

    @RequestMapping("/update")
    public String update(){
        System.out.println("用户更新....");
        return "/home.jsp";
    }
}

SpringSecurity注解

@Controller
@RequestMapping("/role")
public class RoleController {

    @Secured(value = "ROLE_USER")
    @RequestMapping("/query")
    public String query(){
        System.out.println("用户查询....");
        return "/home.jsp";
    }

    @Secured("ROLE_ADMIN")
    @RequestMapping("/save")
    public String save(){
        System.out.println("用户添加....");
        return "/home.jsp";
    }

    @RequestMapping("/update")
    public String update(){
        System.out.println("用户更新....");
        return "/home.jsp";
    }
}

然后在页面模板文件中可以通过taglib来实现权限更细粒度的控制

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>HOME页面</h1>
<security:authentication property="principal.username" />
<security:authorize access="hasAnyRole('ROLE_USER')" >
    <a href="#">用户查询</a><br>
</security:authorize>
    <security:authorize access="hasAnyRole('RO

相关推荐

  1. 【第一SpringSecurity入门

    2024-06-14 01:00:03       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-14 01:00:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-14 01:00:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-14 01:00:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-14 01:00:03       18 阅读

热门阅读

  1. MySQL CHECK约束

    2024-06-14 01:00:03       7 阅读
  2. Android基础-运行时权限

    2024-06-14 01:00:03       4 阅读
  3. 013-Linux交换分区管理

    2024-06-14 01:00:03       6 阅读
  4. ios CCDelete.m

    2024-06-14 01:00:03       5 阅读
  5. 项目经验:别啥事都跟甲方讲

    2024-06-14 01:00:03       5 阅读