1 |
1 |
package cz.zcu.fav.kiv.antipatterndetectionapp.v2.security;
|
2 |
2 |
|
3 |
|
import com.nimbusds.jose.jwk.source.JWKSource;
|
4 |
|
import com.nimbusds.jose.jwk.source.RemoteJWKSet;
|
5 |
|
import com.nimbusds.jwt.proc.JWTProcessor;
|
6 |
3 |
import org.springframework.beans.factory.annotation.Autowired;
|
7 |
4 |
import org.springframework.context.annotation.Bean;
|
8 |
|
import org.springframework.context.annotation.Configuration;
|
9 |
|
import org.springframework.core.annotation.Order;
|
10 |
|
import org.springframework.security.config.Customizer;
|
|
5 |
|
11 |
6 |
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
12 |
7 |
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
13 |
|
import org.springframework.security.config.annotation.web.configurers.oauth2.server.resource.OAuth2ResourceServerConfigurer;
|
14 |
|
import org.springframework.security.oauth2.jwt.JwtDecoder;
|
15 |
|
import org.springframework.security.oauth2.jwt.NimbusJwtDecoder;
|
|
8 |
|
16 |
9 |
import org.springframework.security.web.SecurityFilterChain;
|
17 |
10 |
|
18 |
11 |
|
19 |
|
import com.nimbusds.jose.EncryptionMethod;
|
20 |
|
import com.nimbusds.jose.JWEAlgorithm;
|
21 |
|
import com.nimbusds.jose.JWSAlgorithm;
|
22 |
|
import com.nimbusds.jose.jwk.JWKSet;
|
23 |
|
import com.nimbusds.jose.jwk.KeyUse;
|
24 |
|
import com.nimbusds.jose.jwk.RSAKey;
|
25 |
|
import com.nimbusds.jose.jwk.source.ImmutableJWKSet;
|
26 |
|
import com.nimbusds.jose.jwk.source.JWKSource;
|
27 |
|
import com.nimbusds.jose.jwk.source.RemoteJWKSet;
|
28 |
|
import com.nimbusds.jose.proc.JWEDecryptionKeySelector;
|
29 |
|
import com.nimbusds.jose.proc.JWEKeySelector;
|
30 |
|
import com.nimbusds.jose.proc.JWSKeySelector;
|
31 |
|
import com.nimbusds.jose.proc.JWSVerificationKeySelector;
|
32 |
|
import com.nimbusds.jose.proc.SecurityContext;
|
33 |
|
import com.nimbusds.jose.util.Base64URL;
|
34 |
|
import com.nimbusds.jwt.proc.ConfigurableJWTProcessor;
|
35 |
|
import com.nimbusds.jwt.proc.DefaultJWTProcessor;
|
36 |
|
import com.nimbusds.jwt.proc.JWTProcessor;
|
37 |
12 |
|
38 |
|
import org.springframework.beans.factory.annotation.Value;
|
39 |
|
import org.springframework.context.annotation.Bean;
|
40 |
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
41 |
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
42 |
|
import org.springframework.security.oauth2.jwt.JwtDecoder;
|
43 |
|
import org.springframework.security.oauth2.jwt.NimbusJwtDecoder;
|
44 |
|
import org.springframework.security.web.SecurityFilterChain;
|
45 |
13 |
import org.springframework.stereotype.Component;
|
46 |
|
import org.springframework.web.cors.CorsConfiguration;
|
47 |
|
import org.springframework.web.cors.CorsConfigurationSource;
|
48 |
|
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
|
14 |
|
49 |
15 |
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
50 |
16 |
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
51 |
17 |
|
52 |
|
import java.net.URL;
|
53 |
|
import java.security.interfaces.RSAPrivateCrtKey;
|
54 |
|
import java.util.Arrays;
|
55 |
|
|
56 |
18 |
import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS;
|
57 |
19 |
|
58 |
20 |
@EnableWebSecurity
|
SSO automatic registration