匿名权限配置
- 定义匿名权限名称
<sec:anonymous granted-authority="A_ANONYMOUS" />A_ANONYMOUS为权限名
- 资源与匿名权限做好关联
如果未登录属于匿名权限,那么AnonymousAuthenticationFilter会为当前用户设置匿名权限的上下文,访问资源时会根据当前资源url查找其对应的权限,然后将拿到的资源对应的权限和匿名用户上下文中的权限名进行匹配。如果命中则表示有权限。
2021年8月22日小于 1 分钟
<sec:anonymous granted-authority="A_ANONYMOUS" />A_ANONYMOUS为权限名
如果未登录属于匿名权限,那么AnonymousAuthenticationFilter会为当前用户设置匿名权限的上下文,访问资源时会根据当前资源url查找其对应的权限,然后将拿到的资源对应的权限和匿名用户上下文中的权限名进行匹配。如果命中则表示有权限。
spring-security文档 调试环境为spring-boot:2.1.4 + spring-security:5.1.10 + spring-security-oauth2:2.3.5的项目环境
Spring Boot 自动做以下事情:
对spring-security-oauth2的翻译 日期:2020-12-23 spring-security-oauth2:2.3.5
不建议使用Spring Security OAuth项目。 Spring Security提供了最新的OAuth 2.0支持。有关更多详细信息,请参见《 OAuth 2.0迁移指南》。
针对spring3.x以xml方式集成security
配置文件
<sec:http access-decision-manager-ref="accessDecisionManager" auto-config="true" entry-point-ref="authenticationEntryPoint">
<sec:logout />
<sec:anonymous granted-authority="A_ANONYMOUS" />
<sec:custom-filter ref="authenticationFilter" before="FORM_LOGIN_FILTER"/>
<sec:custom-filter ref="filterSecurityInterceptor" before="FILTER_SECURITY_INTERCEPTOR"/>
<sec:custom-filter ref="switchRoleProcessingFilter" before="SWITCH_USER_FILTER"/>
<sec:form-login login-processing-url="/j_spring_security_login"/>
</sec:http>
当用户访问了受保护的资源,spring会抛出一个AuthenticationException,会触发AuthenticationEntryPoint的commence方法
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>