本文最后更新于:February 2, 2022 pm
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转、依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
目录 角色 添加配置 在主启动类中添加注解@EnableGlobalMethodSecurity(securedEnabled = true),表示可以用注解。
package com.tothefor;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;@SpringBootApplication @EnableGlobalMethodSecurity(securedEnabled = true) public class StudyandMybatisApplication { public static void main (String[] args) { SpringApplication.run(StudyandMybatisApplication.class, args); } }
注解使用(@Secured)
用法:@Secured({“ROLE_角色1”,”ROLE_角色2”})。注意前缀规范!
@RequestMapping({"/","/index"}) @Secured({"ROLE_admin","ROLE_vip1"}) public String index () { return "index" ; }
权限 添加配置 在主启动类中添加注解@EnableGlobalMethodSecurity(prePostEnabled = true),表示可以用注解。
package com.tothefor;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;@SpringBootApplication @EnableGlobalMethodSecurity(securedEnabled = true,prePostEnabled = true) public class StudyandMybatisApplication { public static void main (String[] args) { SpringApplication.run(StudyandMybatisApplication.class, args); } }
注解使用(@PreAuthorize) @RequestMapping({"/","/index"}) @PreAuthorize("hasAnyAuthority('admin')") public String index () { return "index" ; }
@PostAuthorize 在方法执行后再进行校验。即,不管有没有权限都会进方法,方法执行完之后才会进行权限验证。
@RequestMapping({"/","/index"}) @PostAuthorize("hasAnyRole('admin')") public String index () { return "index" ; }