authentication 认证 确认你是否是你声称的那个东东
Authorization 授权 通过认证后 授予访问权限
使用自定义访问控制
<http access-decision-manager-ref="myAccessDecisionManagerBean">
...
</http>
相关信息存储在安全上下文中
获取主体对象SecurityContextHolder.getContext().getAuthentication().getPrincipal();
当成功通过验证时 UserDetails 会被用来建立Authentication对象, 保存在
SecurityContextHolder 里
除了主体,另一个Authentication 提供的重要方法是getAuthorities()。这个方法提供
了GrantedAuthority 对象数组。毫无疑问,GrantedAuthority 是赋予到主体的权限。
这些权限通常使用角色表示, 比如ROLE_ADMINISTRATOR 或
ROLE_HR_SUPERVISOR。这些角色会在后面,对web 验证,方法验证和领域对象验证
进行配置。Spring Security 的其他部分用来拦截这些权限,期望他们被表现出现。
GrantedAuthority 对象通常使用UserDetailsService 读取的
all Authentication implementations store a list of GrantedAuthority objects. These represent the authorities that have been granted to the principal. The GrantedAuthority objects are inserted into the Authentication object by the AuthenticationManager and are later read by AccessDecisionManagers when making authorization decisions.
AccessDecisionManager
基于投票的方式 使用一系列的AccessDecisionVoter 进行投票决定。最常用的是RoleVoter,通过对 GrantedAuthority与 ConfigAttributes 进行比对。
标签使用
<sec:authorize access="hasRole('supervisor')">
This content will only be visible to users who have
the "supervisor" authority in their list of <tt>GrantedAuthority</tt>s.
</sec:authorize>
配置
web安全
<http>
名为"springSecurityFilterChain" 的FilterChainProxy bean会被创建,内部配置信息用来创建过滤器链。所有过滤器需要的AuthenticationManager 会被自动注入。
SecurityContextPersistenceFilter ExceptionTranslationFilter FilterSecurityInterceptor 会被创建。
access-decision-manager-ref
access-denied-page Deprecated in favour of the access-denied-handler element.
authentication-manager-ref
auto-config 默认 to "false".
create-session
always
ifRequired (default value).
never
stateless
disable-url-rewriting default is false
entry-point-ref customized AuthenticationEntryPoint bean which will start the authentication process.
pattern 需要过滤的匹配模式
request-matcher ant , regex and ciRegex
request-matcher-ref
security none 表示不启用安全
servlet-api-provision 默认true 为HttpServletRequest 增加安全方法
use-expressions 启用EL-expressions in the access attribute
子元素
access-denied-handler
error-page 无权限是转到此页面
ref AccessDeniedHandler 的引用
anonymous enabled 默认启用 granted-authority 默认ROLE_ANONYMOUS username 默认anonymousUser
custom-filter after before position ref
expression-handler ref SecurityExpressionHandler引用
form-login 定义UsernamePasswordAuthenticationFilter 和LoginUrlAuthenticationEntryPoint
always-use-default-target
authentication-details-source-ref
authentication-failure-handler-ref
authentication-failure-url
authentication-success-handler-ref
default-target-url
login-page
login-processing-url
password-parameter 默认j_password
username-parameter 默认j_username
http-basic BasicAuthenticationFilter and BasicAuthenticationEntryPoint
authentication-details-source-ref
entry-point-ref
http-firewall
ref HttpFirewall 引用
intercept-url 被FilterSecurityInterceptor用来创建FilterInvocationSecurityMetadataSource
可作为filter-invocation-definition-source filter-security-metadata-source http的子元素
access filters只能为none method http提交方法 pattern url匹配 requires-channel http或者https
jee J2eePreAuthenticatedProcessingFilter 集成容器认证
logout LogoutFilter
delete-cookies 退出时需要删除的cookies
invalidate-session true 退出时销毁session
logout-success-url 默认 “/”
openid-login 类似<form-login> 具有相同属性
port-mappings
port-mapping
http thhps
remember-me
request-cache ref RequestCache
session-management SessionManagementFilter
认证服务
<authentication-manager alias erase-credentials
id>
分享到:
相关推荐
Spring Security 实践指南 Spring Security 是一个基于 Java 的安全框架,旨在提供身份验证、授权和访问控制等功能。下面是 Spring Security 的主要知识点: 一、身份验证(Authentication) 身份验证是指对用户...
Spring Security是一个功能强大、高度定制的安全框架,它专门用于为基于Spring的应用程序提供安全性解决方案。Spring Security架构的设计初衷是为了解决认证和授权的需求,确保应用程序的安全性。它提供了全面的安全...
Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理,它为Web应用和企业级应用提供了全面的安全服务。这个框架能够处理认证、授权以及各种安全相关的功能,帮助开发者构建安全、可扩展的应用。以下...
SpringSecurity是Java领域中一款强大的安全框架,主要用于Web应用程序的安全管理。它提供了全面的身份验证、授权、会话管理以及安全相关的功能,可以帮助开发者构建安全的Web应用。在本笔记中,我们将深入探讨Spring...
Spring Security 是一个强大的安全框架,用于为Java应用提供身份验证和授权服务。在这个完整的项目实例中,我们将深入探讨Spring Security的核心概念以及如何将其应用于实际的Web应用程序开发。 首先,我们从用户、...
在压缩包文件`spring_gateway_security_webflux`中,可能包含了示例代码或配置文件,用于演示如何在Spring Cloud Gateway中集成Spring Security,实现统一登录认证鉴权。这些资源可以帮助开发者更快地理解和实践上述...
在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...
SpringBoot+SpringSecurity处理Ajax登录请求问题 SpringBoot+SpringSecurity处理Ajax登录请求问题是SpringBoot开发中的一個常见问题,本文将详细介绍如何使用SpringBoot+SpringSecurity处理Ajax登录请求问题。 ...
Spring Security 是一个强大的安全框架,用于为Java应用提供全面的安全管理解决方案。它是Spring生态系统的组成部分,专注于身份验证、授权和访问控制。Spring Security的核心特性包括: 1. **身份验证...
SpringSecurity是Java开发中用于构建安全Web应用的框架,它提供了强大的身份验证、授权和访问控制功能。在本文中,我们将深入探讨SpringSecurity的核心概念、关键组件以及如何配置和使用这个框架。 首先,Spring...
Spring Security是Spring生态体系中的一个核心组件,主要负责应用程序的安全性,包括认证和授权。它为Web应用提供了全面的保护,防止未经授权的访问和操作。在版本2.5时,Spring Security已经是一个成熟且功能丰富的...
### Spring Security 3.0.1 中文版知识点解析 #### 一、Spring Security 3.0.1 概览 ##### 1.1 Spring Security 是什么? Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。它提供了许多功能...
Spring Security是一个功能强大且高度可定制的身份验证和授权框架,专门用于保护Java应用程序的安全性。它构建在Spring Framework基础之上,提供了全面的安全解决方案,包括身份验证、授权、攻击防护等功能。 Spring...
视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,永久有效。 首先,SSM环境中我们通过xml配置的...Springsecurity在两种不同的开发模式中使用,有经典的独立web后台管理系统,也有时下最流行的前后端分离场景。
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。在这个场景中,我们关注的是如何使用Spring Security实现登录验证以及在登录过程中传递参数,特别是记录并返回用户登录前的...
Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架,它是安全领域中Spring生态系统的一部分。Spring Security旨在为Java应用程序提供一个全面的安全解决方案,尤其适用于企业级应用场景。它主要...
### Spring Security 概述与应用实践 #### 一、引言 在当今互联网时代,网络安全问题日益凸显,尤其是Web应用程序的安全性受到了前所未有的关注。为了应对这些挑战,Spring Security 应运而生,成为了一个非常重要...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。它提供了全面的安全解决方案,包括用户认证、权限授权、会话管理、CSRF防护以及基于HTTP的访问控制。在这个例子中,我们将...
SpringSecurity是Java领域中一款强大的安全框架,专为Spring和Spring Boot应用设计,提供全面的安全管理解决方案。在SpringBoot Web开发中,SpringSecurity扮演着核心角色,负责处理身份验证、授权以及访问控制等...
Spring Security 是一个强大的安全框架,用于为Java应用提供安全控制。在传统的权限管理中,权限配置通常硬编码在应用程序中,这使得权限调整变得困难,每次变动都需要重新部署应用。然而,通过动态授权,我们可以将...