跳至主要內容
Spring Security

介绍

针对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>

zzz小于 1 分钟后端SpringSpring Security
匿名权限

匿名权限

匿名权限配置

  • 定义匿名权限名称

<sec:anonymous granted-authority="A_ANONYMOUS" />A_ANONYMOUS为权限名

  • 资源与匿名权限做好关联

如果未登录属于匿名权限,那么AnonymousAuthenticationFilter会为当前用户设置匿名权限的上下文,访问资源时会根据当前资源url查找其对应的权限,然后将拿到的资源对应的权限和匿名用户上下文中的权限名进行匹配。如果命中则表示有权限。


zzz小于 1 分钟后端SpringSpring Security
Servlet应用

Servlet应用

spring-security文档 调试环境为spring-boot:2.1.4 + spring-security:5.1.10 + spring-security-oauth2:2.3.5的项目环境

SpringBoot自动配置


zzz大约 7 分钟后端SpringSpring Security
资源访问权限

资源访问权限

配置

当用户访问了受保护的资源,spring会抛出一个AuthenticationException,会触发AuthenticationEntryPoint的commence方法

  1. 配置在web.xml中的org.springframework.web.filter.DelegatingFilterProxy是一个过滤器的代理链FilterChainProxy,里面包含多个过滤器。
<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>

zzz大约 5 分钟后端SpringSpring Security