Spring Security中permitAll()和anonymous()的区别

简介: anonymous() 允许匿名用户访问,不允许已登入用户访问permitAll() 不管登入,不登入 都能访问permitAll(): Always evaluates to trueisAnonymous(): Returns true if the current principal is an anonymous user

anonymous() 允许匿名用户访问,不允许已登入用户访问

permitAll() 不管登入,不登入 都能访问

permitAll(): Always evaluates to true

isAnonymous(): Returns true if the current principal is an anonymous user

从 Spring文档:


采用“默认拒绝”通常被认为是良好的安全实践,您可以明确指定允许的内容并禁止其他所有内容。定义未经身份验证的用户可以访问的内容是类似的情况,尤其是对于 Web 应用程序。许多站点要求用户必须通过除少数 URL 之外的任何其他内容(例如主页和登录页面)的身份验证。在这种情况下,最容易为这些特定 URL 定义访问配置属性,而不是为每个受保护的资源定义访问配置属性。换句话说,有时可以说默认情况下需要 ROLE_SOMETHING 并且只允许此规则的某些例外情况,例如登录、注销和应用程序的主页。您也可以完全从过滤器链中省略这些页面,从而绕过访问控制检查,


这就是我们所说的匿名身份验证。


请注意,“经过匿名身份验证”的用户和未经身份验证的用户之间没有真正的概念差异。Spring Security 的匿名身份验证只是为您提供了一种更方便的方式来配置您的访问控制属性。


使用.permitAll()will 配置授权,以便在该特定路径上允许所有请求(来自匿名用户和登录用户)。


的.anonymous()表达主要是指用户(登录与否)的状态。基本上,在用户通过“身份验证”之前,它是“匿名用户”。这就像每个人都有一个“默认角色”。


目录
相关文章
|
9月前
|
JSON 安全 Java
什么是JWT?如何使用Spring Boot Security实现它?
什么是JWT?如何使用Spring Boot Security实现它?
1737 5
|
6月前
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
|
安全 Java 数据安全/隐私保护
使用Spring Security实现细粒度的权限控制
使用Spring Security实现细粒度的权限控制
|
安全 Java 数据库
实现基于Spring Security的权限管理系统
实现基于Spring Security的权限管理系统
|
安全 Java 数据安全/隐私保护
解析Spring Security中的权限控制策略
解析Spring Security中的权限控制策略
|
9月前
|
Java 关系型数据库 数据库
京东面试:聊聊Spring事务?Spring事务的10种失效场景?加入型传播和嵌套型传播有什么区别?
45岁老架构师尼恩分享了Spring事务的核心知识点,包括事务的两种管理方式(编程式和声明式)、@Transactional注解的五大属性(transactionManager、propagation、isolation、timeout、readOnly、rollbackFor)、事务的七种传播行为、事务隔离级别及其与数据库隔离级别的关系,以及Spring事务的10种失效场景。尼恩还强调了面试中如何给出高质量答案,推荐阅读《尼恩Java面试宝典PDF》以提升面试表现。更多技术资料可在公众号【技术自由圈】获取。
|
11月前
|
监控 Java 应用服务中间件
Spring和Spring Boot的区别
Spring和Spring Boot的主要区别,包括项目配置、开发模式、项目依赖、内嵌服务器和监控管理等方面,强调Spring Boot基于Spring框架,通过约定优于配置、自动配置和快速启动器等特性,简化了Spring应用的开发和部署过程。
440 19
|
11月前
|
Java 编译器 Spring
Spring AOP 和 AspectJ 的区别
Spring AOP和AspectJ AOP都是面向切面编程(AOP)的实现,但它们在实现方式、灵活性、依赖性、性能和使用场景等方面存在显著区别。‌
377 2
|
11月前
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
2404 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
JSON 安全 Java
Spring Security 6.x 微信公众平台OAuth2授权实战
上一篇介绍了OAuth2协议的基本原理,以及Spring Security框架中自带的OAuth2客户端GitHub的实现细节,本篇以微信公众号网页授权登录为目的,介绍如何在原框架基础上定制开发OAuth2客户端。
586 4
Spring Security 6.x 微信公众平台OAuth2授权实战