springboot接入gitee登录
时间: 2023-07-01 17:04:04 浏览: 75
要在Spring Boot应用程序中实现Gitee登录,你需要执行以下步骤:
1. 创建一个Gitee应用程序并获取客户端ID和客户端密钥。可以在Gitee的开发者中心创建应用程序。
2. 添加Spring Security依赖项。
3. 在Security Configuration中配置OAuth2客户端。
下面是一个简单的配置示例:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/login/**")
.permitAll()
.anyRequest()
.authenticated()
.and()
.oauth2Login()
.loginPage("/login")
.defaultSuccessURL("/")
.failureUrl("/login?error=true")
.and()
.csrf()
.disable();
}
@Bean
public ClientRegistrationRepository clientRegistrationRepository() {
return new InMemoryClientRegistrationRepository(giteeClientRegistration());
}
private ClientRegistration giteeClientRegistration() {
return ClientRegistration.withRegistrationId("gitee")
.clientId("your-client-id")
.clientSecret("your-client-secret")
.clientAuthenticationMethod(ClientAuthenticationMethod.POST)
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.redirectUriTemplate("{baseUrl}/login/oauth2/code/{registrationId}")
.scope("user_info")
.authorizationUri("https://gitee.com/oauth/authorize")
.tokenUri("https://gitee.com/oauth/token")
.userInfoUri("https://gitee.com/api/v5/user")
.userNameAttributeName(IdTokenClaimNames.SUB)
.jwkSetUri("https://gitee.com/oauth/keys")
.clientName("Gitee")
.build();
}
}
```
在上面的代码中,我们使用Spring Security OAuth2客户端支持来配置Gitee登录。
在configure()方法中,我们通过.antMatchers()方法指定/login/**路径可公开访问,任何人都可以访问它。
我们还用.anyRequest().authenticated()确保所有其他请求都需要一个已经认证的用户。
在oauth2Login()方法中,我们设置了登录页面,成功的默认URL和错误URL。
最后,我们通过clientRegistrationRepository()方法将客户端注册添加到Spring Security中。
在giteeClientRegistration()方法中,我们使用ClientRegistration.withRegistrationId()方法创建一个新的客户端注册。我们设置客户端ID和密钥,并指定客户端认证方法。
我们还设置了授权类型,重定向URI模板,作用域,授权URI,令牌URI,用户信息URI,用户名属性名称,JWK集合URI和客户端名称。
为了使此配置生效,你需要在Spring Boot应用程序中提供以下属性:
```
spring.security.oauth2.client.registration.gitee.client-id=your-client-id
spring.security.oauth2.client.registration.gitee.client-secret=your-client-secret
```
这样,你就可以使用Gitee登录来保护你的Spring Boot应用程序了。