- 博客(33)
- 收藏
- 关注
原创 SpringSecurity中文文档(Servlet OAuth 2.0 Resource Server)
在应用程序将其权限管理委托给授权服务器(例如 Okta 或 Ping Identity)的情况下,这非常方便。资源服务器可以查询此授权服务器来对请求进行授权。本节详细介绍 Spring Security 如何提供对 OAuth 2.0 Bearer Token 的支持。SpringSecuritySamples 存储库中提供了用于 JWT 和 Opaque 令牌的工作示例。现在我们可以考虑在 Spring 安全性中承载令牌身份验证是如何工作的。
2024-07-12 14:33:35 804
原创 SpringSecurity中文文档(Servlet OAuth 2.0 Client)
OAuth 2.0 Client 特性提供了对 OAuth 2.0授权框架中定义的 Client 角色的支持。在高层次,可用的核心特征是:Oauth2Client () DSL 为定制 OAuth 2.0 Client 使用的核心组件提供了许多配置选项。另外,启用授权代码授权的自定义。下面的代码显示了 HttpSecurity.oauth2Client () DSL 提供的完整配置选项:除了 HttpSecurity.oauth2Client () DSL 之外,还支持 XML 配置。
2024-07-10 17:39:06 905
原创 SpringSecurity中文文档(Servlet OAuth 2.0 Login)
OAuth 2.0 Login 功能允许应用程序让用户通过使用 OAuth 2.0 Provider (如 GitHub)或 OpenID Connect 1.0 Provider (如 Google)的现有帐户登录到应用程序。OAuth 2.0 Login 实现了两个用例: “ Login with Google”或“ Login with GitHub”。
2024-07-10 14:10:05 770
原创 SpringSecurity-SpirngBoot-方法级授权(SpringSecurity6.3新特性)(四)
本章使用SpringSecurity6.3新特性实现数据级别的鉴权,主要的目的是实现不同权限的用户查询同一个方法,限制一些内容只能拥有特定权限的用户才能看到,其他没有该权限的用户显示为空。在上一节的基础上,新建spring-security-authorization-data分支。修改SecurityConfiguration类,添加rob用户,权限为"message:read", “user:read”;新建luke用户,权限为"message:read"
2024-07-09 17:30:21 874
原创 SpirngSecurity-会话管理(sessionManagement)(三)
SpringSecurity默认是通过session对用户的登录进行管理的,如果想控制同一时间,只允许用户在一个地方登录,就需要使用SpringSecurity的sessionManagement功能。基于上一节的分支,我们新建一个spring-security-session-management分支。
2024-07-09 14:13:47 837
原创 SpringSecurity(Authorization Events)
对于每个被拒绝的授权,都会激发一个 AuthorizationDeniedEvent。此外,还可以为授予的授权激发 AuthorizationGrantedEvent。若要侦听这些事件,必须首先发布 AuthorizationEventPublisher。Spring Security 的 SpringAuthorizationEventPublisher 可能会做得很好。
2024-07-09 10:56:52 377
原创 SpringSecurity中文文档(Domain Object Security (ACLs))
本节描述 SpringSecurity 如何使用访问控制列表(ACL)提供域对象安全性。复杂的应用程序通常需要定义超出 Web 请求或方法调用级别的访问权限。相反,安全决策需要包括 who (Authentication)、 where (MethodInvation)和 what (Some DomainObject)。换句话说,授权决策还需要考虑方法调用的实际域对象实例主题。假设您正在为宠物诊所设计一个应用程序。基于 Spring 的应用程序的用户主要有两类: 宠物诊所的工作人员和宠物诊所的客户。
2024-07-09 10:56:03 835
原创 SpringSecurity中文文档(Servlet Method Security)
除了在请求级别进行建模授权之外,Spring Security 还支持在方法级别进行建模。然后,您可以立即使用@PreAuthorize、@PostAuthorize、@PreFilter 和@PostFilter 对任何 Spring 管理的类或方法进行注释,以授权方法调用,包括输入参数和返回值。SpringBootStarterSecurity 默认情况下不激活方法级授权。Method Security 还支持许多其他用例,包括 AspectJ 支持、自定义注释和几个配置点。
2024-07-09 09:01:44 967
原创 SpringSecurity中文文档(Servlet Authorize HttpServletRequests)
SpringSecurity 允许您在请求级别对授权进行建模。例如,对于 Spring Security,可以说/admin 下的所有页面都需要一个权限,而其他所有页面只需要身份验证。默认情况下,SpringSecurity 要求对每个请求进行身份验证。也就是说,任何时候使用 HttpSecurity 实例,都需要声明授权规则。无论何时有 HttpSecurity 实例,您至少应该这样做:这告诉 Spring Security,应用程序中的任何端点都需要至少对安全上下文进行身份验证才能允许它。
2024-07-08 15:13:53 1126
原创 SpringSecurity中文文档(Servlet Authorization Architecture )
在确定了用户将如何进行身份验证之后,还需要配置应用程序的授权规则。Spring Security 中的高级授权功能是其受欢迎的最有说服力的原因之一。无论您选择如何进行身份验证(无论是使用 Spring Security 提供的机制和提供者,还是与容器或其他非 Spring Security 身份验证授权机构集成) ,授权服务都可以在您的应用程序中以一致和简单的方式使用。您应该考虑附加授权规则来请求 URI 和方法。在这两种情况下,您都可以侦听并响应每个授权检查发布的授权事件。
2024-07-08 11:33:03 1042
原创 SpringSecurity中文文档(Servlet Logout Authentication Events)
在终端用户可以登录的应用程序中,他们也应该能够注销。默认情况下,Spring Security 支持一个/logout 端点,因此不需要额外的代码。
2024-07-08 10:19:59 941 1
原创 SpringSecurity中文文档(Servlet X.509 Run-As)
X. 509证书身份验证的最常见用途是在使用 SSL 时验证服务器的身份,最常见的用法是在浏览器中使用 HTTPS。浏览器会自动检查服务器提供的证书是否已由其维护的受信任证书颁发机构列表中的一个颁发(数字签名)。您还可以使用带有“相互身份验证”的 SSL。然后,服务器从客户机请求一个有效的证书,作为 SSL 握手的一部分。服务器通过检查客户端的证书是否由可接受的授权机构签名来对客户端进行身份验证。如果提供了有效的证书,则可以通过应用程序中的 servletAPI 获得该证书。
2024-07-01 17:24:44 863
原创 SpringSecurity中文文档(Servlet CAS)
JA-SIG 生产了一个名为 CAS 的企业级单点登录系统。与其它倡议不同,JA-SIG 的中央认证服务是开源的,广泛使用,易于理解,平台独立,并支持代理功能。Spring Security 完全支持 CAS,并为从单个应用程序部署的 Spring Security 迁移到由企业级 CAS 服务器保护的多个应用程序部署提供了简单的迁移路径。你可登入 www.apereo.org 了解更多有关 CAS 的资料。您还需要访问此站点来下载 CAS 服务器文件。
2024-07-01 17:15:57 988
原创 SpringSecurity中文文档(Servlet JAAS)
AbstractJaasAuthenticationProvider 类是提供的 JAAS AuthenticationProvider 实现的基础。子类必须实现一个创建 LoginContext 的方法。AbstractJaasAuthenticationProvider 有许多可以注入的依赖项,如下文所述。
2024-07-01 16:53:21 920
原创 SpringSeurity中文文档(Servlet Pre-Authentication Scenarios)
这个类检查安全上下文当前的内容,如果为空,则尝试从 HTTP 请求中提取用户信息并将其提交给 AuthenticationManager。子类重写以下方法以获取这些信息。调用这些方法后,过滤器将创建一个包含返回数据的 PreAuthenticatedAuthenticationToken 并提交进行身份验证。在这里,“身份验证”实际上只是指进一步的 processing,可能会加载用户的权限,但是遵循标准的 Spring Security 身份验证架构。
2024-07-01 16:37:33 871
原创 SpringSecurity中文文档(Servlet Anonymous Authentication)
通常认为采用“默认拒绝”立场是良好的安全实践,您明确指定允许的内容并拒绝其他所有内容。定义未经身份验证的用户可以访问的内容是类似的情况,特别是对于 Web 应用程序。许多网站要求用户必须经过身份验证才能访问除少数 URL(例如主页和登录页面)之外的内容。在这种情况下,最简单的方法是为这些特定 URL 定义访问配置属性,而不是为每个受保护资源定义。换句话说,有时默认要求 ROLE_SOMETHING 并只允许对此规则的某些例外情况是很好的,例如应用程序的登录、注销和主页。
2024-07-01 16:25:31 558
原创 SpringSecurity中文文档(Servlet RememberMe)
Remember-me 或持久登录身份验证指的是网站能够在会话之间记住主体的标识。这通常是通过向浏览器发送 Cookie 来完成的,Cookie 将在以后的会话中被检测到,并导致自动登录的发生。Spring Security 为这些操作提供了必要的钩子,并且有两个具体的 remember-me 实现。一种方法使用哈希来保护基于 cookie 的令牌的安全性,另一种方法使用数据库或其他持久存储机制来存储生成的令牌。请注意,这两种实现都需要一个UserDetailsService。
2024-07-01 16:08:47 1159
原创 SpringSecurity中文文档(Servlet Session Management)
一旦您拥有了正在对请求进行身份验证的应用程序,就必须考虑如何在将来的请求中持久化和恢复结果身份验证。默认情况下,这是自动完成的,因此不需要额外的代码,尽管了解 requireExplicitSave在 HttpSecurity 中的含义非常重要。如果您愿意,您可以阅读更多关于 RequureExplicSave 正在做什么或者为什么它很重要的内容。否则,在大多数情况下您将完成本节。
2024-07-01 15:39:14 1234
原创 SpringSecurity中文文档(Servlet Persisting Authentication)
用户第一次请求受保护的资源时,系统会提示他们输入凭据。提示凭据的最常见方法之一是将用户重定向到登录页。对于请求受保护资源的未经身份验证的用户,总结的 HTTP 交换可能如下所示:用户提交他们的用户名和密码。在对用户进行身份验证后,该用户与一个新的会话 ID 相关联,以防止会话固定攻击。后续请求包括会话 Cookie,该 Cookie 用于在会话的其余部分对用户进行身份验证。
2024-07-01 11:23:59 544
原创 SpringSecurity中文文档(Servlet Password Storage)
这可以通过检索 password 属性的值并在本地进行检查来完成,也可以通过执行 LDAP 的“比较”操作来完成,其中提供的密码被传递给服务器进行比较,并且永远不会检索到真正的密码值。然而,尽管使用用户名和密码进行身份验证,它并不使用 UserDetailsService,因为在绑定身份验证中,LDAP 服务器不会返回密码,因此应用程序无法进行密码验证。对于如何配置 LDAP 服务器,有许多不同的场景,因此 Spring Security 的 LDAP 提供程序是完全可配置的。
2024-06-28 14:05:41 672
原创 SpringSecurity中文文档(Reading the Username & Password)
控制 HTTP 摘要身份验证的标准由 RFC 2617定义,它更新了 RFC 2069规定的摘要身份验证标准的早期版本。如果需要使用未加密的 HTTP (不使用 TLS 或 HTTPS)并希望最大限度地提高身份验证过程的安全性,则摘要身份验证被视为一种更具吸引力的选择。但是,一旦提供了任何基于 servlet 的配置,就必须显式提供基于表单的登录。本节详细介绍 Spring Security 中基于表单的身份验证是如何工作的。前面的图是基于我们的 SecurityFilterChain 图构建的。
2024-06-27 17:04:57 605
原创 SpringSecurity中文文档(UsernamePassword Authentication)
验证用户的最常见方法之一是验证用户名和密码。SpringSecurity 为使用用户名和密码进行身份验证提供了全面的支持。您可以使用以下方法配置用户名和密码身份验证:前面的配置自动在 SecurityFilterChain 中注册了一个内存中的 UserDetailsService,将 DaoAuthenticationProvider 注册到默认的 AuthenticationManager,并启用了表单登录和 HTTP 基本认证。
2024-06-26 16:55:30 1142
原创 SpringSecurity中文文档(Servlet Authentication Architecture)
AbstractAuthenticationProcessingFilter 被用作基于用户凭据进行认证的基础 Filter。在凭据可以被认证之前,Spring Security 通常通过使用 AuthenticationEntryPoint 来请求凭据。接下来,AbstractAuthenticationProcessingFilter 可以认证提交给它的任何认证请求。
2024-06-26 16:35:42 1082
原创 SpringSecurity中文文档(体系结构).md
大多数情况下,默认的安全过滤器就足以保护您的应用程序。然而,有时您可能希望向安全过滤器链中添加一个自定义过滤器。例如,假设您希望添加一个 Filter,它获取租户 ID 标头,并检查当前用户是否可以访问该租户。前面的描述已经给了我们一个关于在哪里添加过滤器的线索,因为我们还需要知道当前用户,所以我们需要在认证过滤器之后添加它。(3) return;(4) } }
2024-06-25 14:13:09 1214
原创 SpringSecurity中文文档(ServletApplication-GettingStarted)
SpringSecurity 通过使用标准的 Servlet 过滤器与 Servlet 容器集成。这意味着它适用于运行在 Servlet 容器中的任何应用程序。具体地说,您不需要在基于 Servlet 的应用程序中使用 Spring 来利用 Spring Security。
2024-06-25 14:11:34 777
原创 SpringSecurity-SpirngBoot-显式声明用户名和使用UserDetailsService(二)
的作用时自动注入当前登录用户信息。
2024-06-20 15:19:24 800
原创 SpringSecurity中文文档(Project+Modules-Simple)
即使你不用 Maven,我们建议您查阅 pom.xml 文件以了解第三方依赖关系和版本。另一个好主意是检查示例应用程序中包含的库。本节提供了 Spring Security 中模块的参考,以及它们在运行的应用程序中运行所需的附加依赖项。我们不包括仅在构建或测试 SpringSecurity 本身时使用的依赖项。我们也不包括外部依赖项所需的传递依赖项。需要的 Spring 版本在项目网站上列出,因此示例中的 Spring 依赖项省略了特定的版本。
2024-06-19 15:27:43 1209
原创 SpringSecurity中文文档(前置-Maven导入SpringSecurity)
SpringSecurity中文文档(前置-Maven导入SpringSecurity)
2024-06-13 11:43:43 1075 2
原创 Centos7 Redis安装教程
创建application文件夹,并使用wget下载redis源码包。命令行输入redis-server,redis正常启动。install_server使用。查看redis运行状态。解压redis源码包。
2023-09-22 14:25:18 162 1
原创 mysql
mysql数据库配置spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/blog?useUnicode=true&&characterEncoding=utf-8&&serverTimezone=GMT%2B8 &&useSSL=false password: root usern
2021-01-20 15:06:43 93
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人