尝试将Okta集成到我的Spring Web MVC应用程序中。由于我没有使用Spring Boot,因此我不得不在最底层的链接中关注示例:https://github.com/spring-projects/spring-security/tree/master/samples/boot/oauth2login
所以这就是我所拥有的:
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Value("#{environment['okta.client-id']}")
private String clientId;
@Value("#{environment['okta.client-secret']}")
private String clientSecret;
@Value("#{environment['okta.redirect-uri']}")
private String redirectUri;
@Value("#{environment['okta.authorization-uri']}")
private String authorizationUri;
@Value("#{environment['okta.token-uri']}")
private String tokenUri;
@Value("#{environment['okta.user-info-uri']}")
private String userInfoUri;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.oauth2Login()
.clients(clientRegistrationRepository())
.userInfoEndpoint()
.userInfoTypeConverter(
new UserInfoConverter(),
new URI(userInfoUri));
}
@Bean
public ClientRegistrationRepository clientRegistrationRepository() {
List<ClientRegistration> clientRegistrations = Collections.singletonList(clientRegistration());
return new InMemoryClientRegistrationRepository(clientRegistrations);
}
private ClientRegistration clientRegistration() {
return new ClientRegistration.Builder(clientId)
.clientSecret(clientSecret)
.clientAuthenticationMethod(ClientAuthenticationMethod.BASIC)
.authorizedGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.redirectUri(redirectUri)
.scopes("openid", "email", "profile")
.authorizationUri(authorizationUri)
.tokenUri(tokenUri)
.userInfoUri(userInfoUri)
.clientName("Okta")
.clientAlias("okta")
.build();
}
}
但是,只要我使用Okta成功登录,它就会将我重定向回登录页面:(http://localhost:8081/login)。单击Okta按钮再次登录也会将我重定向到同一页面。
任何建议都会有所帮助。