Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- spring.security.oauth2.client.registration.okta.client-id=myclientid
- spring.security.oauth2.client.registration.okta.client-secret=myclisnrsecret
- spring.security.oauth2.client.registration.okta.scope=openid,profile,email
- spring.security.oauth2.client.registration.okta.redirect-uri=http://localhost:8080/login/oauth2/code/okta
- spring.security.oauth2.client.provider.okta.issuer-uri=https://dev-XXXXXXXX.okta.com/oauth2/default
- const.application.url=http://localhost:8080/
- okta.oauth2.issuer=https://dev-XXXXXXXX.okta.com/oauth2/default
- okta.oauth2.client-id=myclientid
- okta.oauth2.client-secret=myclisnrsecret
- okta.oauth2.redirect-uri=http://localhost:8080/login/oauth2/code/okta
- security config
- package com.vlps.excelgenerator.security;
- import com.vlps.excelgenerator.controller.LogoutHandler;
- import com.vlps.excelgenerator.validator.AudienceValidator;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.security.config.annotation.web.builders.HttpSecurity;
- import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
- import org.springframework.security.oauth2.client.registration.ClientRegistration;
- import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
- import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
- import org.springframework.security.oauth2.core.AuthorizationGrantType;
- import org.springframework.security.oauth2.core.DelegatingOAuth2TokenValidator;
- import org.springframework.security.oauth2.core.OAuth2TokenValidator;
- import org.springframework.security.oauth2.jwt.*;
- import org.springframework.security.web.SecurityFilterChain;
- import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
- import org.springframework.web.cors.CorsConfiguration;
- import org.springframework.web.cors.CorsConfigurationSource;
- import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
- import java.util.Arrays;
- @EnableWebSecurity
- @Configuration
- public class SecurityConfiguration {
- @Value("${const.application.url}")
- private String applicationURL;
- private String issuer="https://dev-XXXXXX.okta.com/oauth2/default"; //provide issuer url
- private String audience="myclientid"; //provide audience
- @Bean
- CorsConfigurationSource corsConfigurationSource() {
- CorsConfiguration cors = new CorsConfiguration();
- cors.setAllowCredentials(true);
- cors.setAllowedOrigins(Arrays.asList(applicationURL));
- cors.setAllowedHeaders(Arrays.asList("Origin", "Access-Control-Allow-Origin", "Content-Type", "Accept",
- "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Credentials"));
- cors.setAllowedMethods(Arrays.asList("*"));
- UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
- source.registerCorsConfiguration("/**", cors);
- return source;
- }
- //@Override
- @Bean
- protected SecurityFilterChain configure(HttpSecurity http) throws Exception {
- http.authorizeHttpRequests((requests) -> requests
- .requestMatchers("/").authenticated()
- .requestMatchers("/api/*").authenticated()
- .anyRequest().authenticated()
- )
- .oauth2Login();
- return http.build();
- }
- @Bean
- public JwtDecoder jwtDecoder() {
- NimbusJwtDecoder jwtDecoder = (NimbusJwtDecoder)
- JwtDecoders.fromOidcIssuerLocation(issuer);
- OAuth2TokenValidator<Jwt> audienceValidator = new AudienceValidator(audience);
- OAuth2TokenValidator<Jwt> withIssuer = JwtValidators.createDefaultWithIssuer(issuer);
- OAuth2TokenValidator<Jwt> withAudience = new DelegatingOAuth2TokenValidator<>(withIssuer, audienceValidator);
- jwtDecoder.setJwtValidator(withAudience);
- return jwtDecoder;
- }
- }
- okta developer accout sign in redirect uri---http://localhost:8080/login/oauth2/code/okta
Advertisement
Add Comment
Please, Sign In to add comment