Spring Boot集成okta
前言
最近在工作中接触到了okta,并与Spring Boot进行集成,积累了一点点经验,分享出来给各位同行参考一下。hhh
一、okta是什么?
简单来说就是一个企业统一认证平台。
二、使用步骤
1.准备工作
- 注册一个okta账号,okta注册地址
- 创建一个Application,create an okta integration for your app
- 获取该Application的clientId、clientSecret、domain,如下:
clientId:0oa4yo3mr6chFXfKO5d7
clientSecret:YPcqGW30JbW04LSfvvLYJc_DIdEuaK5I7VyNnMPs
domain:dev-86782088.okta.com
2.开发工作
a、pom.xml中引入okta相关依赖
<dependency>
<groupId>com.okta.spring</groupId>
<artifactId>okta-spring-boot-starter</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.okta.spring</groupId>
<artifactId>okta-spring-sdk</artifactId>
<version>1.4.0</version>
</dependency>
注意: 因为我的Spring Boot 版本为2.3.12.RELEASE,参考https://start.spring.io/actuator/infoOKTA,okta的version选择1.4.0。
b、application.properties加入okta相关配置:
okta.oauth2.issuer=https://dev-86782088.okta.com/oauth2/default
okta.oauth2.client-id=0oa4yo3mr6chFXfKO5d7
okta.oauth2.client-secret=YPcqGW30JbW04LSfvvLYJc_DIdEuaK5I7VyNnMPs
okta.oauth2.redirect-uri=/authorization-code/callback
c、主启动类Application.java
@SpringBootApplication
@Slf4j
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Configuration
@EnableWebSecurity
static class OktaOAuth2WebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and().oauth2Client()
.and().oauth2Login()
.and().oauth2ResourceServer().jwt();
}
}
}
d、控制器Controller.java
@RestController
public class TestController {
@GetMapping("/hello")
public String logout(@AuthenticationPrincipal OidcUser oidcUser) {
return "Hello: " + oidcUser.getFullName();
}
}
e、访问localhost:8080/hello
然后输入自己的用户名密码:
成功访问页面,nice~
总结
以上就是Spring Boot集成okta的相关内容,如果大家有遇到相关的问题,可以在下面留言哦,我尽力帮大家解决。