从入门到精通:Java整合OAuth2实现第三方登录的8个关键节点

java面试题之OAuth 2.0是什么,四种支持的方法 OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息,并且这是安全的。Third-party application:第三方应用程序,又称"客户端"(client)。Resource Owner:资源所有者,又称"用户"(user)。User Agent:用户代理,指浏览器。Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。 阅读详情

第一章:Java整合OAuth2实现第三方登录概述

在现代Web应用开发中,用户身份认证已从传统的用户名密码模式逐步演进为基于开放标准的授权机制。OAuth2作为一种广泛采用的授权框架,允许第三方应用在用户授权的前提下安全地访问资源,而无需获取用户的原始凭证。Java作为企业级开发的主流语言,通过整合Spring Security与Spring Authorization Server等生态组件,能够高效实现OAuth2协议的客户端与资源服务器功能。
核心优势
  • 提升用户体验:用户无需重复注册,一键登录即可接入系统
  • 增强安全性:避免明文存储第三方密码,通过令牌机制控制访问权限
  • 标准化集成:支持主流平台如微信、GitHub、Google等统一接入方式

典型应用场景

场景说明
社交登录用户通过微信或QQ账号快速登录网站
API权限管理微服务间调用通过OAuth2令牌验证身份
单点登录(SSO)多个子系统共享同一套认证中心

基础流程示意

graph TD A[用户访问客户端应用] --> B[重定向至授权服务器] B --> C[用户登录并授权] C --> D[授权服务器返回授权码] D --> E[客户端换取访问令牌] E --> F[使用令牌请求用户信息]

依赖配置示例

<!-- Spring Boot中引入OAuth2客户端依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
该配置启用OAuth2客户端支持,后续可通过application.yml定义各提供商的客户端ID、密钥及授权端点,实现多平台灵活接入。

第二章:OAuth2协议核心原理与授权模式解析

2.1 OAuth2四大授权模式详解及其适用场景

OAuth2定义了四种核心授权模式,适用于不同客户端类型与安全需求场景。
授权码模式(Authorization Code)
最常用且最安全的流程,适用于有后端的Web应用。用户授权后,客户端获取授权码,再通过后端交换访问令牌。
GET /authorize?response_type=code&client_id=xxx&redirect_uri=callback&scope=read
参数说明:`response_type=code` 表示使用授权码模式;`client_id` 标识客户端;`redirect_uri` 为回调地址。
简化模式(Implicit)
用于单页应用(SPA),令牌直接在前端返回,无后端参与,安全性较低。
密码模式(Resource Owner Password Credentials)
用户直接提供用户名和密码换取令牌,仅适用于高度信任的客户端,如官方客户端。
客户端凭证模式(Client Credentials)
服务间通信使用,不涉及用户身份,仅凭客户端ID和密钥获取令牌。
模式适用场景是否需用户参与
授权码Web应用是
简化前端单页应用是
密码可信客户端是
客户端凭证服务到服务否

2.2 授权码模式的工作流程与安全机制剖析

授权码模式(Authorization Code Flow)是OAuth 2.0中最推荐的授权方式,适用于拥有后端服务的客户端应用。其核心在于通过临时授权码交换访问令牌,避免令牌在前端暴露。
典型工作流程
  1. 用户访问客户端,客户端将用户重定向至授权服务器
  2. 用户在授权服务器上登录并同意授权
  3. 授权服务器回调客户端并返回授权码
  4. 客户端使用授权码向令牌端点请求访问令牌
  5. 授权服务器验证授权码后返回访问令牌
安全增强:PKCE机制
为防止授权码拦截攻击,现代实现通常结合PKCE(Proof Key for Code Exchange):

GET /authorize?
  response_type=code
  &client_id=client123
  &redirect_uri=https://client/callback
  &code_challenge=abc123
  &code_challenge_method=S256
其中 code_challenge 是由随机生成的 code_verifier 经SHA-256哈希生成,确保授权码只能由原始客户端兑换。

2.3 资源服务器、客户端与认证服务器的角色分工

在典型的OAuth 2.0架构中,资源服务器、客户端与认证服务器各司其职,共同保障系统安全与数据访问的可控性。
核心角色职责
  • 认证服务器(Authorization Server):负责用户身份验证与令牌发放,是整个安全链的信任中心。
  • 资源服务器(Resource Server):存储受保护资源,依据访问令牌决定是否响应请求。
  • 客户端(Client):代表用户发起请求,需先获取有效令牌才能访问资源服务器。
典型交互流程示例

GET /api/user HTTP/1.1
Host: resource-server.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
该请求表明客户端携带JWT令牌访问资源。资源服务器会校验令牌有效性,确认其由可信认证服务器签发,并包含相应作用域(scope)权限。
角色协作关系
角色主要功能依赖方
认证服务器颁发令牌、验证用户身份资源服务器、客户端
资源服务器提供数据、校验令牌认证服务器
客户端获取令牌、请求资源认证服务器

2.4 Spring Security OAuth2中的核心组件模型分析

在Spring Security OAuth2架构中,核心组件通过职责分离实现安全认证与授权的灵活控制。
主要组件及其职责
  • ClientDetailsService:负责加载客户端详情,如client_id、secret、授权模式等;
  • AuthorizationServerTokenServices:管理令牌的创建、存储与撤销;
  • UserDetailsService:加载用户身份信息,用于密码模式下的认证;
  • TokenStore:定义令牌的存储策略,支持内存、JDBC、Redis等。
令牌生成配置示例
@Configuration
@EnableAuthorizationServer
public class AuthServerConfig extends AuthorizationServerConfigurerAdapter {
    @Autowired
    private AuthenticationManager authenticationManager;

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) {
        endpoints.authenticationManager(authenticationManager)
                 .tokenStore(new InMemoryTokenStore()); // 使用内存存储令牌
    }
}
上述代码配置了授权服务器的终端点,指定使用AuthenticationManager处理认证请求,并采用内存方式存储访问令牌,适用于开发测试环境。生产环境建议切换至JdbcTokenStore以保障可扩展性与持久化能力。

2.5 实践:搭建本地测试环境并模拟授权请求交互

在开发OAuth 2.0客户端时,搭建本地测试环境是验证授权流程的关键步骤。首先需配置一个本地服务器以接收重定向请求。
环境准备
使用Node.js启动一个轻量HTTP服务:

const http = require('http');
const url = require('url');

const server = http.createServer((req, res) => {
  const queryObject = url.parse(req.url, true).query;
  res.end(`Received code: ${queryObject.code}`);
});
server.listen(3000, () => console.log('Server running on http://localhost:3000'));
该服务监听3000端口,解析URL中的授权码(code),用于后续令牌请求。
模拟授权请求
向授权服务器发起GET请求,参数包括:
  • client_id:客户端唯一标识
  • redirect_uri:必须与注册时一致,如http://localhost:3000/callback
  • response_type=code:指定授权码模式

第三章:Spring Boot集成OAuth2客户端开发实战

3.1 基于Spring Security 5+实现GitHub第三方登录

在现代Web应用中,集成第三方登录已成为提升用户体验的重要手段。Spring Security 5+ 提供了强大的OAuth2客户端支持,可轻松集成GitHub作为身份提供商。
配置OAuth2客户端
首先,在application.yml中配置GitHub客户端信息:
spring:
  security:
    oauth2:
      client:
        registration:
          github:
            client-id: your-client-id
            client-secret: your-client-secret
            scope: user:email
其中client-id和client-secret需在GitHub开发者设置中注册应用后获取,scope指定请求的权限范围。
安全配置类
通过Java配置启用OAuth2登录:
@Configuration
@EnableWebSecurity
public class SecurityConfig {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.oauth2Login();
        http.authorizeHttpRequests(authz -> authz.anyRequest().authenticated());
        return http.build();
    }
}
该配置启用OAuth2登录流程,并要求所有请求必须认证。用户访问受保护资源时,将自动重定向至GitHub授权页面。

3.2 配置ClientRegistration与ClientRegistrationRepository

在Spring Security的OAuth2客户端配置中,`ClientRegistration`用于定义第三方认证服务器的信息,如授权URL、令牌端点和客户端ID等。每个`ClientRegistration`实例代表一个已注册的OAuth2客户端。
创建ClientRegistration
ClientRegistration registration = ClientRegistration.withRegistrationId("google")
    .clientId("client-id")
    .clientSecret("client-secret")
    .redirectUri("{baseUrl}/login/oauth2/code/{registrationId}")
    .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
    .scope("email", "profile")
    .authorizationUri("https://accounts.google.com/o/oauth2/v2/auth")
    .tokenUri("https://oauth2.googleapis.com/token")
    .userInfoUri("https://www.googleapis.com/oauth2/v3/userinfo")
    .userNameAttributeName("sub")
    .clientName("Google")
    .build();
上述代码构建了一个针对Google的客户端注册信息。`registrationId`是唯一标识,`redirectUri`为默认回调地址,`scope`定义请求的权限范围,而`userNameAttributeName`指定用户唯一标识字段。
使用ClientRegistrationRepository管理注册信息
通过实现`ClientRegistrationRepository`接口,可集中管理多个`ClientRegistration`实例。最常用的是`InMemoryClientRegistrationRepository`,支持将多个客户端注册信息加载到内存中,便于框架自动集成至登录流程。

3.3 处理回调地址、用户信息获取与登录成功逻辑扩展

在OAuth 2.0认证流程中,回调地址是身份验证完成后重定向的关键入口。应用需预先在平台注册合法的回调URL,防止开放重定向漏洞。
回调地址校验与用户信息获取
服务端接收到授权码后,应通过安全通道向认证服务器发起请求,换取用户信息:
// 示例:使用授权码获取用户信息
resp, err := http.PostForm("https://oauth.example.com/token", url.Values{
    "grant_type":   {"authorization_code"},
    "client_id":    {clientId},
    "client_secret": {clientSecret},
    "code":         {code},
    "redirect_uri": {"https://yourapp.com/callback"},
})
该请求需严格匹配预注册的redirect_uri,确保攻击者无法伪造跳转路径。获取访问令牌后,调用用户信息接口(如/userinfo)解析JSON响应,提取唯一标识(sub)、昵称、头像等数据。
登录成功后的扩展逻辑
  • 创建或更新本地用户会话
  • 持久化OAuth令牌用于后续API调用
  • 触发个性化推荐或数据同步任务

第四章:自建OAuth2认证服务器与资源保护策略

4.1 使用Spring Authorization Server构建认证中心

Spring Authorization Server 是 Spring 官方推出的 OAuth2.1 认证服务器框架,专为构建安全的授权中心而设计。它支持最新的 OAuth2.1 规范,包括 PKCE、JWT Secured Authorization Response Mode(JARM)等增强特性。
基本配置示例

@EnableAuthorizationServer
@Configuration
public class AuthServerConfig {
    @Bean
    public RegisteredClientRepository registeredClientRepository() {
        RegisteredClient client = RegisteredClient.withId("client-id")
            .clientId("web-client")
            .clientSecret("{noop}secret")
            .redirectUri("https://example.com/login/oauth2/code/web-client")
            .scope("read")
            .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
            .build();
        return new InMemoryRegisteredClientRepository(client);
    }
}
上述代码定义了一个注册客户端,使用授权码模式进行认证。clientSecret 使用 {noop} 前缀表示明文存储,生产环境应使用加密方式。重定向 URI 必须与客户端实际地址一致,防止开放重定向攻击。
核心优势
  • 深度集成 Spring Security,安全机制完善
  • 模块化设计,易于扩展自定义授权类型
  • 支持 JWK Set 发布,便于密钥管理

4.2 配置Token存储策略与JWT令牌生成机制

在现代身份认证体系中,合理配置Token的存储策略与JWT令牌的生成机制至关重要。为保障安全性与可扩展性,推荐将JWT令牌通过HTTP-only Cookie进行传输,并设置Secure和SameSite属性。
JWT生成核心参数
  • 算法选择:优先使用HS256或RS256签名算法
  • 有效期:设置合理的exp(过期时间),通常为15-30分钟
  • 签发者:指定iss字段以标识服务来源
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
    "sub": "123456",
    "exp": time.Now().Add(30 * time.Minute).Unix(),
    "iss": "auth-service.example.com",
})
signedToken, _ := token.SignedString([]byte("secret-key"))
上述代码创建一个HS256签名的JWT,包含用户主体、过期时间和签发者信息。密钥需安全存储,建议使用环境变量注入。
存储策略对比
方式安全性跨域支持
LocalStorage低高
HTTP-only Cookie高中

4.3 实现资源服务器的端点权限控制与方法级安全

在Spring Security中,资源服务器通过配置方法级安全来精细化控制API访问权限。启用该功能需在配置类上添加@EnableGlobalMethodSecurity注解。
启用方法级安全
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MethodSecurityConfig {
}
上述代码启用了基于@PreAuthorize和@PostAuthorize的表达式控制,允许在方法调用前后进行权限判断。
注解驱动的权限控制
  • @PreAuthorize("hasRole('ADMIN')"):调用前校验用户是否具备ADMIN角色;
  • @PostAuthorize:用于返回值后验证,适用于数据过滤场景;
  • @Secured("ROLE_USER"):限制仅特定角色可访问。
结合JWT认证机制,方法级安全能有效实现细粒度的端点保护,提升系统整体安全性。

4.4 刷新令牌机制与安全性最佳实践配置

在现代身份认证体系中,刷新令牌(Refresh Token)用于在访问令牌(Access Token)过期后安全地获取新令牌,避免用户频繁重新登录。
刷新令牌的工作流程
用户首次认证后,服务器同时签发访问令牌和刷新令牌。当访问令牌失效时,客户端使用刷新令牌请求新的访问令牌。
{
  "access_token": "eyJhbGciOiJIUzI1NiIs...",
  "refresh_token": "rfs_9876543210",
  "expires_in": 3600,
  "token_type": "Bearer"
}
响应中返回的 refresh_token 应长期有效但可撤销,通常存储于安全的 HTTP-only Cookie 中。
安全性最佳实践
  • 刷新令牌应绑定客户端ID,防止跨应用滥用
  • 启用一次性使用策略,每次换取新令牌后旧刷新令牌立即失效
  • 设置合理的过期时间(如7-14天),并支持服务器端主动吊销
  • 记录刷新令牌使用日志,用于异常行为检测

第五章:常见问题排查与生产环境部署建议

服务启动失败的典型原因分析
在生产环境中,服务无法正常启动常由配置错误或依赖缺失引起。例如,数据库连接字符串未正确设置,或 Redis 实例不可达。

# 示例:检查配置文件中的数据库地址
database:
  host: ${DB_HOST:localhost}
  port: 5432
  name: production_db
确保所有环境变量在部署前已注入容器或系统环境中。
日志级别与性能监控策略
生产环境应避免使用 DEBUG 级别日志,推荐设置为 INFO 或 WARN,以减少 I/O 开销。结合 Prometheus 与 Grafana 可实现请求延迟、GC 时间等关键指标的可视化。
  • 启用应用健康检查端点(如 /health)
  • 配置慢查询日志以定位数据库瓶颈
  • 定期审查线程池状态与连接池使用率
容器化部署最佳实践
使用非 root 用户运行容器可提升安全性。以下为 Dockerfile 片段示例:

FROM golang:1.21-alpine
WORKDIR /app
COPY . .
RUN adduser -D appuser
USER appuser
CMD ["./server"]
同时,在 Kubernetes 中应配置资源限制与就绪探针。
高可用架构设计参考
组件推荐方案备注
负载均衡Nginx Ingress + TLS 终止支持蓝绿发布
数据持久化主从复制 + 定时备份每日凌晨快照
SpringBoot - OAuth2第三方登录之QQ登录 之前写过一篇OAuth2 - 第三方登录之新浪登录,提到过QQ审核很复杂,我之前提交审核很多次,各种原因失败,这一次总算成功了,所以便来记录一下其中过程。 QQ登录需要做哪些准备? 1、服务器+备案过的域名。 2、一个能跑起来的服务,且登录页面正常,有QQ登录的跳转按钮。 可以通过ICP备案这个网站去查询你的备案信息。 红框标出来的,就是下面创建应用要使用的。 QQ互联 - 创建应用 进入到QQ互联官网,登录之后需要先进行一把开发者身份认证(需要手持身份证)。开发者身份审核通过之后,就可以去应用管理里创建 阅读详情

相关推荐

使用Java实现OAuth 2.0认证授权

本文介绍了如何使用Java实现OAuth 2.0认证授权,包括配置授权服务器、资源服务器和客户端,并展示了如何获取和使用访问令牌。希望通过本文的讲解,大家能够掌握OAuth 2.0的基本概念和实现方法,应用到实际项目中,提升应用的安全性和用户体验。OAuth 2.0是一种授权框架,允许第三方应用在资源拥有者授权的前提下访问资源。资源服务器负责存储和保护资源,只有持有有效令牌的请求才可以访问。客户端获取到访问令牌后,可以使用该令牌访问资源服务器上的受保护资源。客户端需要使用授权码向授权服务器换取访问令牌。

技术研究中心 3766

【OAuth2】二十、OAuth2扩展协议 PKCE

OAuth2扩展协议 PKCE

weixin_43333483的博客 4977

Oauth2.1第三方授权前后端分离实现

完成上诉步骤我们就可以进行第三方授权登录了。复盘一下自定义登录页面自定义授权页面请求授权地址监听重定向改造登录成功监听改造(返回成功信息)授权成功监听改造(如果是前端请求则返回成功信息,由前端重定向到成功回调地址)前端登录改造(先请求我们自己的登录接口,成功后再请求oauth2提供的登录接口)https://resource.liulingfengyu.cn/img/扫码_搜索联合传播样式-标准色版压缩版.png。

程序员们必读的博客,涵盖IT技术、编程经验等领域。 2245

java实现oauth2.0_Java的oauth2.0 服务端与客户端的实现

oauth原理简述oauth本身不是技术,而是一项资源授权协议,重点是协议!Apache基金会提供了针对Java的oauth封装。我们做Java web项目想要实现oauth协议进行资源授权访问,直接使用该封装就可以。oauth2.0 的协议实现原理,所有的技术层面的开发都是围绕这张图。整个开发流程简述一下:1、 在客户端web项目中构造一个oauth的客户端请求对象(OAuthClientRe...

weixin_39593247的博客 4075

SpringBoot+OAuth2+Google关联登录

前言 最近公司需要将Google关联登录整合到项目的资源服务器中,但是其中遇到了很多坑,在这里记录一下。 环境: 操作系统:win7 jdk版本:1.8 IDEA:2019.2 SpringBoot版本:2.1.6.RELEASE Spring-cloud-starter-oauth2版本:2.1.0.RELEASE 注意,要做Google关联登录,当然得先翻墙才行。 正文 一、关于oAuth2的...

你要悄悄的拔尖,然后惊艳所有人 5831

sa-token整合oauth2

需要注意的是,Spring Security 5 提供了对 OAuth 2.0 的原生支持,如果你使用的是 Spring Boot,那么整合 Spring Security 和 OAuth 2.0 可能是更直接的选择。:你需要实现 OAuth 2.0 的登录流程,包括重定向用户到授权服务器、处理授权服务器的回调等。具体的实现细节会根据你的项目需求、使用的技术栈和 OAuth 2.0 服务器的具体实现而有所不同。:对你的整合进行彻底的测试,确保 OAuth 2.0 登录流程正常工作,并且。

u014308676的博客 2068

八 Spring Security Oauth2 单点登录 第三方授权(QQ、微信登录)

SSO单点登录 第三方授权(QQ、微信登录) Oauth2认证流程 Oauth2认证解决方案 Oauth2授权模式 对称/非对称加密 公钥私钥 JWT令牌 OAuth对接微服务 SpringSecurity权限控制

东风麦芽糖 1万+

Spring Boot OAuth2整合实战:从第三方登录到API安全防护

OAuth2作为现代应用授权的工业标准协议,其核心思想是‘授权而非认证’,通过定义资源所有者、客户端、授权服务器和资源服务器四个角色间的标准化交互流程,解决了应用间安全访问用户资源的问题。该协议基于授权码、密码、客户端凭证和隐式四种模式,其中授权码模式因其通过前端信道传递授权码、后端信道交换令牌的安全机制,成为Web应用整合第三方登录的主流选择。在技术实现层面,Spring Security框架提供了对OAuth2协议的全面支持,通过自动配置和声明式安全规则,开发者能够高效构建安全的认证授权基础设施。这种整

weixin_30698527的博客 400

Shiro - 实现 Shiro 与 OAuth2.0 整合 支持第三方登录

Shiro与OAuth2.0整合实现第三方登录 摘要 本文详细介绍了如何将Apache Shiro安全框架与OAuth2.0协议整合,实现支持GitHub等第三方登录的解决方案。文章首先分析了Shiro和OAuth2.0在认证授权中的角色定位,重点阐述了授权码模式的交互流程。然后提供了完整的Spring Boot项目配置指南,包括必要的Maven依赖和YAML配置。在实现层面,设计了支持第三方登录的用户数据模型,并给出数据库表结构设计建议。通过本文的整合方案,开发者可以在保留Shiro强大权限管理能力的同时

千淘万漉虽辛苦,吹尽狂沙始到金 1万+

oauth2 java 获取token_基于SpringBoot整合oauth2实现token认证

这篇文章主要介绍了基于springboot整合oauth2实现token 认证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下session和token的区别:session是空间换时间,而token是时间换空间。session占用空间,但是可以管理过期时间,token管理部了过期时间,但是不占用空间.sessionid失效问题和token内包含。...

weixin_34870207的博客 2554

OAuth的Java实现详解和示例代码

在上面的示例代码中,我们首先配置了客户端的相关信息,包括客户端ID、客户端密钥、访问令牌URI、用户授权URI和作用域。OAuth(开放授权)是一种常用的身份验证和授权协议,用于让用户授权第三方应用访问其受保护的资源,而无需共享其登录凭据。本文将详细介绍OAuth的Java实现,并提供相应的示例代码。除了OAuth 2.0,Java中还支持其他版本的OAuth,如OAuth 1.0a。总结起来,本文介绍了OAuth在Java中的实现方式,并提供了一个使用OAuth 2.0进行身份验证和授权的示例代码。

CodeShiftZ的博客 515

Spring Boot整合OAuth2实现GitHub第三方登录

springboot整合oauth2,实现GitHub第三方登录

胖胖爱吃肉~的博客 3004

用户和实体行为分析(UEBA)基础指南及解决方案

用户和实体行为分析(UEBA)或异常检测是一种网络安全技术,它使用机器学习(ML)算法来检测网络中用户、主机和其他实体的异常活动。

ITmoster的博客 2893

登录模块 用户认证 SpringSecurity +Oauth2+Jwt

SpringSecurity Oauth2 jwtSpringSecurity Oauth2 jwt1 用户认证分析1.1 单点登录1.2 第三方账号登录2 认证解决方案2.1 单点登录技术方案2.2 第三方登录技术方案2.2.1 Oauth2认证流程2.2.2 Oauth2在项目的应用2.3 Spring security Oauth2认证解决方案3 Jwt令牌回顾3.1 令牌结构3.2 生成私钥公钥3.3 基于私钥生成jwt令牌3.3.1导入认证服务3.3.2 认证服务中创建测试类3.4 基于公

m0_46690280的博客 8169

在VS2019里把JSBSim飞行模型集成到你的C++项目里(附完整配置流程和常见错误解决)

本文详细介绍了如何在Visual Studio 2019中将JSBSim飞行模型集成到C++项目中,包括环境准备、源码编译、项目配置和常见错误解决方案。通过实战技巧和优化建议,帮助开发者高效实现高精度飞行仿真功能,提升开发效率。

weixin_42620202的博客 413

kali虚拟机-----破解wifi密码(WiFi渗透)

文章目录一、将无线网卡挂载到 虚拟机上二、查看是否挂载成功三、查看网卡是否支持监听模式四、检查文件监听影响并杀死影响五、开启无线监听模式六、开始监听七、开始抓包(新建一个命令窗口)八、对已连接的终端进行攻击,使它掉线重连,以此来获取数据包。(新建一个命令窗口)九、开始解密 一、将无线网卡挂载到 虚拟机上 可能出现的问题:在可移动设备处无法连接无线网卡; 解决:在虚拟机设置中将usb控制器设置成如图所示。 注意要先关闭虚拟机在设置。 二、查看是否挂载成功 使用ifconfig命令查看 三、查看网卡是

weixin_46471800的博客 1万+

超级简单的springboot整合springsecurity oauth2第三方登录

springboot整合进行第三方登录,例如qq、微信、微博。网上一堆教程,并且很多都是旧版本的,篇幅又长,哔哩吧啦一大堆,就算你搞下来了,等下次版本升级或变更一下,你又不知道怎么改了。这篇文章主要是分享一下我自己是如何实现第三方登录的,其实很简单~~~

gzmyh的博客 4893

从实习生到独立上手:我是如何用海思PQTool搞定IPC图像调试的

本文分享了从实习生到独立使用海思PQTool进行IPC图像调试的成长历程。通过工具搭建、核心参数调整和实战案例,详细介绍了如何高效解决图像质量问题,特别强调了ISP调试中的关键参数和实用技巧,适合刚入门的图像调试工程师参考。

weixin_33756596的博客 313

单点登录-第三方对接OAuth2.0-正在书写中ing

大家好,你是不是经常遇到这样的烦恼:每次想登录一个新的网站或者应用,都要重新输入用户名和密码,有时候还得设置各种密保问题,简直烦死个人了!其实啊,有一个叫做“单点登录”的东西,就像是给你准备了一把“万能钥匙”,只要有了它,你就可以轻松打开多个应用的大门,再也不用为登录发愁了。而在这个“万能钥匙”里,有一个非常流行的“零件”叫做OAuth2.0,它能让第三方应用轻松对接到你的账户,让你在享受各种服务的同时,还能保证账号的安全。

鼠爷 2949

MATLAB 论文复现——面向紧急需求响应的规模化灵活资源负荷管理快速决策方法

其次,对灵活资源参与EDR的功率分配模型进行了建模,并提出了基于分层分布式共识算法的快速决策方法,对功率分配模型进行快速求解,以满足EDR实时性的需求,在保证较高精度的前提下提高了决策速度。[1]孔祥玉,杨至端,孙裕策,等.面向紧急需求响应的规模化灵活资源负荷管理快速决策方法[J/OL].电力系统自动化,1-13[2024-07-29].http://kns.cnki.net/kcms/detail/32.1180.TP.20240709.1843.002.html.关键词: 规模化灵活资源;

sjr1478的博客 374

R语言Dunnett’s检验实战:寻找差异组之间的效果

总结起来,本文以R语言为工具,演示了如何使用Dunnett’s检验来找出单因素方差分析中不同组之间的效果差异。在本篇文章中,我们将通过R语言实战演示如何使用Dunnett’s检验来寻找不同组之间的效果差异。在分析结果时,通常我们会关注具有显著差异的组别,并基于Dunnett’s检验结果进行进一步的解释和讨论。首先,我们需要准备一组数据,假设我们有一个实验,涉及到四个不同的处理组和一个对照组。当我们发现方差分析结果显示存在显著差异时,我们可以进一步进行Dunnett’s检验来确定具体哪些组之间存在差异。

CoderExtra的博客 1104

SpringBoot安全配置全解析:整合SpringSecurity实现OAuth2登录

随着微服务架构的兴起,越来越多的应用采用了分布式系统,这对安全配置提出了更高的要求。Spring Boot 与 Spring Security 的结合,再加上 OAuth2 协议的支持,为开发者提供了一套强大而灵活的安全解决方案,能够满足不同场景下的安全需求。

梵心白莲的博客 1751

多模态目标检测综述介绍及框架提供

多模态目标检测是计算机视觉领域的前沿方向,旨在通过融合不同传感器或数据源的信息(如可见光、红外、深度等),提升复杂场景下目标检测的准确性和鲁棒性。

Limiiiing的博客 4589

SpringBoot整合OAuth2 实现单点登录 SSO

SSO

usa_washington的博客 2452

贝叶斯时空模型-INLA-4

该文章中,会简化数学计算的过程,主要是针对,在有数据的基础上,如何应用贝叶斯时空模型,找出影响因素,绘制时间变化的空间分布预测图。上述中关键一步与前几期介绍的不一样的地方是,我们加入了n.group参数,用来指定年份,先看一下Year有多少年的,然后封装在s.index里面。在前述的内容中,我们介绍了,如何处理空间的数据,利用海拔高度预测降雨量的例子。建立好数据及mesh以后,我们现在写INLA公式,如果不考虑残差项,那就是固定效应,现在我们增加残差项,及空间与时间效应。这里的Mesh设定值为10,20。

学习中 2950

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

使用鸿蒙账号系统实现第三方登录与OAuth授权

在现代应用开发中,用户身份验证是一个核心功能。第三方登录(如使用 Google、Facebook 或微信等账号登录)和 OAuth 授权机制(用于访问用户的私人资源)提供了便利的用户身份验证方式,同时避免了开发者自行处理密码存储和身份验证的复杂性。鸿蒙操作系统提供了强大的账号系统()和支持第三方登录的功能,帮助开发者快速集成 OAuth 授权和第三方登录功能。本文将详细介绍如何在鸿蒙系统中使用账号系统实现第三方登录和 OAuth 授权。

欢迎来到菜鸟不学编程的博客 1328

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 【企业级安全架构必备】:Java加密算法落地实践全指南
下一篇: 【Java Docker部署实战指南】:掌握高效容器化部署的5大核心技巧
CodePulse
博客等级 码龄2年 187粉丝 2233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值