spring security oauth2 授权码模式,授权页面不出现问题

spring security oauth2  授权码模式流程

1.用户访问授权url   如:http://localhost:8080/oauth/authorize?client_id=www&response_type=code&redirect_uri=http://localhost:9001/callback

2.跳到登录页面,进行登录。

3.登录成功跳到授权页面。

4.授权成功访问回调地址。

第三步访问不到的原因:

1.  oauth_client_detail表中的autoapprove字段要设置成0

  

2.oauth_approvals表中存在对应的数据,不会在去授权页面。expiresAt字段过期之后才会需要重新授权。

### 配置 Spring Security OAuth2 使用授权码模式 为了使Spring应用程序能够利用OAuth2协议的安全特性,在Spring Boot项目中集成了Spring Security OAuth2之后,可以按照如下方式配置授权码模式。 #### 1. 添加依赖项 确保`pom.xml`文件中有必要的Maven依赖项来支持OAuth2和JWT令牌解析: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-oauth2-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` #### 2. 应用属性设置 在`application.yml`或者`application.properties`文件里定义客户端ID、秘密以及其他OAuth2提供商的具体参数。对于授权码模式而言,这些信息通常由第三方服务提供商给出[^1]。 ```yaml spring: security: oauth2: client: registration: google: clientId: your_client_id clientSecret: your_secret_key redirectUri: "{baseUrl}/login/oauth2/code/{registrationId}" scope: profile, email provider: google: authorization-uri: https://accounts.google.com/o/oauth2/auth token-uri: https://oauth2.googleapis.com/token user-info-uri: https://www.googleapis.com/oauth2/v3/userinfo jwk-set-uri: https://www.googleapis.com/oauth2/v3/certs ``` 此示例展示了如何针对Google作为OAuth2提供者的具体配置;实际应用时应替换为对应的服务端点URL以及申请到的应用凭证。 #### 3. 安全配置类编写 创建一个继承自`WebSecurityConfigurerAdapter`的Java配置类,并重写其方法以适应特定需求。这里主要关注于启用HTTP基本认证并允许访问登录页面需预先验证用户身份。 ```java @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/").permitAll() // 允许所有人访问主页 .anyRequest().authenticated()// 所有其他请求都需要经过身份验证 .and() .oauth2Login(); // 启用OAuth2登录机制 } } ``` 上述代码片段通过调用`.oauth2Login()`启用了基于浏览器的OAuth2登录过程,这会自动处理与外部身份提供商之间的交互逻辑,包括发起授权请求、接收回调响应等操作[^2]。 当一切准备就绪后,启动应用程序并将浏览器指向根路径即可触发OAuth2流程,进而完成整个授权码模式下的用户认证环节。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java大狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值