使用Spring Security来集成Okta身份验证和授权而不是直接依赖应用程序属性。
首先,在pom.xml文件中添加以下依赖项,以集成Spring Security和Okta:
org.springframework.boot
spring-boot-starter-security
com.okta.spring
okta-spring-boot-starter
1.4.1
其次,将以下内容添加到应用程序的application.yml文件中:
okta:
oauth2:
issuer: https:///oauth2/default
client-id:
client-secret:
redirect-uri: http://localhost:8080/login/oauth2/code/okta
scope: openid profile email
spring:
security:
oauth2:
client:
registration:
okta:
client-id: ${okta.oauth2.client-id}
client-secret: ${okta.oauth2.client-secret}
provider: okta
redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
scope: openid profile email
provider:
okta:
authorization-uri: https:///oauth2/default/v1/authorize
token-uri: https:///oauth2/default/v1/token
user-info-uri: https:///oauth2/default/v1/userinfo
user-name-attribute: sub
现在,您可以在应用程序中使用Spring Security和Okta来进行身份验证和授权。
例如,您可以在Controller中使用以下注释来保护端点:
@GetMapping("/protected")
@PreAuthorize("hasRole('ROLE_ADMIN')")
public String getProtected() {
return "This endpoint is protected";
}
这将要求用户具有“ROLE_ADMIN”角色才能访问受保护的端点。
通过使用Spring Security和Okta