OAuth2 是认证框架、JWT (JSON Web Tokens) 是认证协议。
相关文章:
Spring Security OAuth2 Provider 之 最小实现
Spring Security OAuth2 Provider 之 数据库存储
Spring Security OAuth2 Provider 之 第三方登录简单演示
Spring Security OAuth2 Provider 之 自定义开发
Spring Security OAuth2 Provider 之 整合JWT
(1)Maven依赖
Authorization Server 和 Resource Server都需要添加依赖。
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-jwt</artifactId>
<optional>true</optional>
</dependency>
(2)生成签名证书
生成证书
引用
# keytool -genkeypair -alias jwt-test -keyalg RSA -dname "CN=jwt,OU=ren,O=ren,L=china,S=china,C=CN" -keypass my_pass -keystore jwt-test.jks -storepass my_pass
把.jks文件放到Authorization Server 的 src/main/resources/jwt-test.jks
导出公钥
引用
# keytool -list -rfc --keystore jwt-test.jks | openssl x509 -inform pem -pubkey
把PUBLIC KEY部分复制到Resource Server 的 src/main/resources/public.txt
(3)认证服务端设置
@Bean
protected JwtAccessTokenConverter jwtTokenEnhancer() {
KeyStoreKeyFactory keyStoreKeyFactory = new KeyStoreKeyFactory(new ClassPathResource("jwt-test.jks"), "my_pass".toCharArray());
JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
converter.setKeyPair(keyStoreKeyFactory.getKeyPair("jwt-test"));
return converter;
}
@Bean
public TokenStore tokenStore() {
return new JwtTokenStore(accessTokenConverter());
}
(4)资源服务端设置
@Bean
public JwtAccessTokenConverter accessTokenConverter() {
JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
Resource resource = new ClassPathResource("public.txt");
String publicKey = null;
try {
publicKey = IOUtils.toString(resource.getInputStream());
} catch (final IOException e) {
throw new RuntimeException(e);
}
converter.setVerifierKey(publicKey);
return converter;
}
@Bean
public TokenStore tokenStore() {
return new JwtTokenStore(accessTokenConverter());
}
(5)确认测试
获取Token:
通过jwt.io确认Token:
通过access_token访问资源API:
(6)算法HS256
把Authorization Server 和 Resource Server的配置改成:
@Bean
protected JwtAccessTokenConverter accessTokenConverter() {
JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
converter.setSigningKey("rensanning");
return converter;
}
获取Token:
通过jwt.io确认Token:
通过access_token访问资源API:
参考:
http://www.baeldung.com/spring-security-oauth-jwt
https://github.com/dynamind/spring-boot-security-oauth2-minimal
- 大小: 107 KB
- 大小: 47.2 KB
- 大小: 94.1 KB
- 大小: 106.5 KB
- 大小: 31.9 KB
- 大小: 67.4 KB
分享到:
相关推荐
《Spring Security + OAuth2 + JWT 实现Web安全认证》 在现代Web开发中,安全认证是不可或缺的一部分。Spring Security作为Java领域中强大的安全框架,配合OAuth2和JWT(JSON Web Token),可以构建出高效且安全的...
总之,"springboot与security oauth2整合例子"是一个实践性的教程,旨在帮助开发者理解如何在Spring Boot应用中集成OAuth2和JWT,以实现安全的、基于令牌的身份验证和授权。这个过程中涵盖了Spring Boot的快速启动...
它提供了全面的安全性解决方案,包括HTTP基本认证、表单登录、OAuth2、JWT等多种认证方式,以及角色权限控制、访问决策管理等功能。Spring Security的核心组件包括过滤器链、安全上下文、访问决策器等。 CAS...
"springsecurity-namespace"可能指的是Spring Security的XML命名空间配置。在Spring Security的早期版本中,使用XML配置是最常见的实践。例如,你可能会看到以下片段: ```xml **" access="hasRole('ROLE_ADMIN')...
10. **Spring Boot**:Spring Boot简化了Spring应用的创建和配置,使得整合Spring Security和OAuth2变得更加容易。 11. **Filter Chain**:Spring Security通过一系列过滤器(Filter Chain)来处理HTTP请求,包括...
Spring Security还支持OAuth2,可以与其他服务进行安全交互,如Google、Facebook登录。 ### 8. 实战案例 - **防止CSRF攻击**:Spring Security默认开启CSRF保护,可通过配置禁用或调整策略。 - **RESTful API安全*...
随着版本的升级,Spring Security不断优化性能,增加了更多安全特性,如OAuth2支持、CAS集成、JWT支持等,以适应不断变化的安全需求。 总结,`spring-security-core-3.1.0.RC1.jar`作为Spring Security的核心库,是...
1. **认证**:通过提供不同类型的Authentication Provider,如数据库、LDAP、Remember Me服务等,Spring Security实现了灵活的用户身份验证。 2. **授权**:基于Role的访问控制(RBAC)允许开发者定义角色和权限,...
总结,"596392912-mica-master_java_"项目为开发者提供了一个基于Spring Security OAuth的统一账号管理平台实例,它涵盖了OAuth 2.0的授权流程、Spring Security的扩展性、微服务架构下的应用等多个关键知识点。...
【xumumi-system-security】是一个基于Spring Security框架开发的安全模块,专用于实现JWT(JSON Web Token)的身份验证和授权机制。在现代Web应用程序中,安全是至关重要的,Spring Security为开发者提供了一套强大...
授权服务器兼容OAuth 2.0和OpenID Connect(OIDC)的授权服务器,仅用于演示目的,可用作OAuth2 / OIDC研讨会的一部分。目标此授权服务器应... 作为开源免费提供支持学习OAuth2 / OpenID Connect的努力(自学或作为...
Spring Security 是一个强大的安全框架,用于Java应用的安全管理。它提供了认证、授权和访问控制功能,使得开发者可以轻松地在应用程序中实现复杂的安全需求。在这个源码案例中,你将有机会深入理解Spring Security...
通过深入研究 `oauth-provider-master` 项目,你可以了解 OAuth2 协议的实际应用,以及如何将它与 Spring Boot 和 Kotlin 结合使用。此外,这将帮助你掌握如何构建安全的 API 并管理第三方访问权限,这对于任何现代 ...
《使用Spring框架实现定制的Spring Security与Web服务》 在IT行业中,安全是任何应用程序的基础,尤其是对于Web服务而言。Spring框架,作为一个广泛使用的Java应用开发框架,提供了强大的安全组件——Spring ...
- **API安全**:对于RESTful API,Spring Security提供了JWT令牌、OAuth2等安全策略。 - **Web安全增强**:包括XSS、CSRF、点击劫持等Web漏洞的防护。 总的来说,Spring Security为开发者提供了一整套工具,帮助...
Spring Security 5.x引入了JWT(JSON Web Token)支持,提高了API安全性和移动应用的安全防护。同时,OAuth2.0和OpenID Connect的增强使得身份验证和授权更为便捷。 6. **Spring Cloud Function** 这是Spring的一...
Spring Security是Spring生态中的安全组件,5.3.29版本提升了安全性,提供了更多的认证和授权选项,包括OAuth2、JWT等,同时也加强了CSRF(跨站请求伪造)防护。 七、测试支持 Spring Test模块为Spring应用提供了...
Spring Security 提供了多种认证方式,如基于表单的登录、HTTP 基本身份验证、OAuth2 等。同时,它提供了细粒度的访问控制,允许开发者通过定义访问规则(如 @Secured 或 @PreAuthorize 注解)来限制对特定 URL 或...
3. **安全控制**:集成 Spring Security 实现用户认证与授权,理解 OAuth2、JWT 等安全协议。 4. **消息队列**:使用 RabbitMQ 或 Kafka 进行异步处理和消息通信。 5. **微服务**:构建分布式系统,使用 Spring ...