`

spring security

阅读更多
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 in Action

    Spring Security 实践指南 Spring Security 是一个基于 Java 的安全框架,旨在提供身份验证、授权和访问控制等功能。下面是 Spring Security 的主要知识点: 一、身份验证(Authentication) 身份验证是指对用户...

    SpringSecurity.pdf

    Spring Security是一个功能强大、高度定制的安全框架,它专门用于为基于Spring的应用程序提供安全性解决方案。Spring Security架构的设计初衷是为了解决认证和授权的需求,确保应用程序的安全性。它提供了全面的安全...

    Spring Security 资料合集

    Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理,它为Web应用和企业级应用提供了全面的安全服务。这个框架能够处理认证、授权以及各种安全相关的功能,帮助开发者构建安全、可扩展的应用。以下...

    spring security 完整项目实例

    Spring Security 是一个强大的安全框架,用于为Java应用提供身份验证和授权服务。在这个完整的项目实例中,我们将深入探讨Spring Security的核心概念以及如何将其应用于实际的Web应用程序开发。 首先,我们从用户、...

    Spring Cloud Gateway 整合 Spring Security 统一登录认证鉴权

    在压缩包文件`spring_gateway_security_webflux`中,可能包含了示例代码或配置文件,用于演示如何在Spring Cloud Gateway中集成Spring Security,实现统一登录认证鉴权。这些资源可以帮助开发者更快地理解和实践上述...

    springsecurity学习笔记

    在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...

    SpringBoot+SpringSecurity处理Ajax登录请求问题(推荐)

    SpringBoot+SpringSecurity处理Ajax登录请求问题 SpringBoot+SpringSecurity处理Ajax登录请求问题是SpringBoot开发中的一個常见问题,本文将详细介绍如何使用SpringBoot+SpringSecurity处理Ajax登录请求问题。 ...

    SpringSecurity学习总结源代码

    SpringSecurity是Java开发中用于构建安全Web应用的框架,它提供了强大的身份验证、授权和访问控制功能。在本文中,我们将深入探讨SpringSecurity的核心概念、关键组件以及如何配置和使用这个框架。 首先,Spring...

    SpringSecurity笔记,编程不良人笔记

    SpringSecurity是Java领域中一款强大的安全框架,主要用于Web应用程序的安全管理。它提供了全面的身份验证、授权、会话管理以及安全相关的功能,可以帮助开发者构建安全的Web应用。在本笔记中,我们将深入探讨Spring...

    spring spring security2.5 jar

    Spring Security是Spring生态体系中的一个核心组件,主要负责应用程序的安全性,包括认证和授权。它为Web应用提供了全面的保护,防止未经授权的访问和操作。在版本2.5时,Spring Security已经是一个成熟且功能丰富的...

    spring security3 中文版本

    ### Spring Security 3.0.1 中文版知识点解析 #### 一、Spring Security 3.0.1 概览 ##### 1.1 Spring Security 是什么? Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。它提供了许多功能...

    最详细Spring Security学习资料(源码)

    Spring Security是一个功能强大且高度可定制的身份验证和授权框架,专门用于保护Java应用程序的安全性。它构建在Spring Framework基础之上,提供了全面的安全解决方案,包括身份验证、授权、攻击防护等功能。 Spring...

    springSecurity 实现传参

    Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。在这个场景中,我们关注的是如何使用Spring Security实现登录验证以及在登录过程中传递参数,特别是记录并返回用户登录前的...

    安全框架Spring Security深入浅出视频教程

    视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,永久有效。 首先,SSM环境中我们通过xml配置的...Springsecurity在两种不同的开发模式中使用,有经典的独立web后台管理系统,也有时下最流行的前后端分离场景。

    springsecurity原理流程图.pdf

    Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架,它是安全领域中Spring生态系统的一部分。Spring Security旨在为Java应用程序提供一个全面的安全解决方案,尤其适用于企业级应用场景。它主要...

    精彩:Spring Security 演讲PPT

    ### Spring Security 概述与应用实践 #### 一、引言 在当今互联网时代,网络安全问题日益凸显,尤其是Web应用程序的安全性受到了前所未有的关注。为了应对这些挑战,Spring Security 应运而生,成为了一个非常重要...

    Spring security认证授权

    Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于Java应用程序。它提供了全面的安全解决方案,包括用户认证、权限授权、会话管理、CSRF防护以及基于HTTP的访问控制。在这个例子中,我们将...

    SpringSecurity素材.rar

    SpringSecurity是Java领域中一款强大的安全框架,专为Spring和Spring Boot应用设计,提供全面的安全管理解决方案。在SpringBoot Web开发中,SpringSecurity扮演着核心角色,负责处理身份验证、授权以及访问控制等...

    spring security实现动态授权

    Spring Security 是一个强大的安全框架,用于为Java应用提供安全控制。在传统的权限管理中,权限配置通常硬编码在应用程序中,这使得权限调整变得困难,每次变动都需要重新部署应用。然而,通过动态授权,我们可以将...

    springboot springsecurity动态权限控制

    在这个“springboot springsecurity动态权限控制”的主题中,我们将深入探讨如何在Spring Boot项目中集成Spring Security,实现动态权限控制,让菜单权限的管理更加灵活和高效。 首先,我们需要理解Spring Security...

Global site tag (gtag.js) - Google Analytics