mirror of
https://github.com/mvvasilev/personal-finances.git
synced 2025-04-19 14:19:52 +03:00
Touch ups
This commit is contained in:
parent
932bd923d7
commit
4f9d99170a
7 changed files with 38 additions and 28 deletions
|
@ -17,9 +17,11 @@ import org.springframework.security.oauth2.client.registration.ReactiveClientReg
|
||||||
import org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestCustomizers;
|
import org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestCustomizers;
|
||||||
import org.springframework.security.oauth2.client.web.server.DefaultServerOAuth2AuthorizationRequestResolver;
|
import org.springframework.security.oauth2.client.web.server.DefaultServerOAuth2AuthorizationRequestResolver;
|
||||||
import org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizationRequestResolver;
|
import org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizationRequestResolver;
|
||||||
|
import org.springframework.security.web.authentication.HttpStatusEntryPoint;
|
||||||
import org.springframework.security.web.server.SecurityWebFilterChain;
|
import org.springframework.security.web.server.SecurityWebFilterChain;
|
||||||
import org.springframework.security.web.server.ServerAuthenticationEntryPoint;
|
import org.springframework.security.web.server.ServerAuthenticationEntryPoint;
|
||||||
import org.springframework.security.web.server.authentication.HttpStatusServerEntryPoint;
|
import org.springframework.security.web.server.authentication.HttpStatusServerEntryPoint;
|
||||||
|
import org.springframework.security.web.server.authentication.RedirectServerAuthenticationEntryPoint;
|
||||||
import org.springframework.security.web.server.authentication.RedirectServerAuthenticationSuccessHandler;
|
import org.springframework.security.web.server.authentication.RedirectServerAuthenticationSuccessHandler;
|
||||||
import org.springframework.session.data.redis.config.annotation.web.server.EnableRedisWebSession;
|
import org.springframework.session.data.redis.config.annotation.web.server.EnableRedisWebSession;
|
||||||
import org.springframework.web.server.WebSession;
|
import org.springframework.web.server.WebSession;
|
||||||
|
@ -47,6 +49,7 @@ public class SecurityConfiguration implements BeanClassLoaderAware {
|
||||||
@Bean
|
@Bean
|
||||||
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http, ServerOAuth2AuthorizationRequestResolver resolver) {
|
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http, ServerOAuth2AuthorizationRequestResolver resolver) {
|
||||||
http
|
http
|
||||||
|
.httpBasic(ServerHttpSecurity.HttpBasicSpec::disable)
|
||||||
.csrf(ServerHttpSecurity.CsrfSpec::disable)
|
.csrf(ServerHttpSecurity.CsrfSpec::disable)
|
||||||
.authorizeExchange(c -> {
|
.authorizeExchange(c -> {
|
||||||
c.pathMatchers("/**").permitAll();
|
c.pathMatchers("/**").permitAll();
|
||||||
|
@ -93,7 +96,8 @@ public class SecurityConfiguration implements BeanClassLoaderAware {
|
||||||
|
|
||||||
return ex.getExchange().getSession().flatMap(WebSession::invalidate);
|
return ex.getExchange().getSession().flatMap(WebSession::invalidate);
|
||||||
});
|
});
|
||||||
});
|
})
|
||||||
|
.exceptionHandling(e -> e.authenticationEntryPoint(new HttpStatusServerEntryPoint(HttpStatus.UNAUTHORIZED)));
|
||||||
|
|
||||||
return http.build();
|
return http.build();
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,17 +2,9 @@ spring:
|
||||||
cloud:
|
cloud:
|
||||||
gateway:
|
gateway:
|
||||||
routes:
|
routes:
|
||||||
- id: core-api
|
|
||||||
uri: ${CORE_API_URI}
|
|
||||||
order: 1
|
|
||||||
predicates:
|
|
||||||
- Path=/api/**
|
|
||||||
filters:
|
|
||||||
- RewritePath=/api/(?<segment>.*), /$\{segment}
|
|
||||||
- TokenRelay=
|
|
||||||
- id: statements-api
|
- id: statements-api
|
||||||
uri: ${STATEMENTS_API_URI}
|
uri: ${STATEMENTS_API_URI}
|
||||||
order: 2
|
order: 1
|
||||||
predicates:
|
predicates:
|
||||||
- Path=/api/statements/**
|
- Path=/api/statements/**
|
||||||
filters:
|
filters:
|
||||||
|
@ -20,12 +12,20 @@ spring:
|
||||||
- TokenRelay=
|
- TokenRelay=
|
||||||
- id: widgets-api
|
- id: widgets-api
|
||||||
uri: ${WIDGETS_API_URI}
|
uri: ${WIDGETS_API_URI}
|
||||||
order: 3
|
order: 2
|
||||||
predicates:
|
predicates:
|
||||||
- Path=/api/widgets/**
|
- Path=/api/widgets/**
|
||||||
filters:
|
filters:
|
||||||
- RewritePath=/api/(?<segment>.*), /$\{segment}
|
- RewritePath=/api/(?<segment>.*), /$\{segment}
|
||||||
- TokenRelay=
|
- TokenRelay=
|
||||||
|
- id: core-api
|
||||||
|
uri: ${CORE_API_URI}
|
||||||
|
order: 3
|
||||||
|
predicates:
|
||||||
|
- Path=/api/**
|
||||||
|
filters:
|
||||||
|
- RewritePath=/api/(?<segment>.*), /$\{segment}
|
||||||
|
- TokenRelay=
|
||||||
- id: spa
|
- id: spa
|
||||||
order: 4
|
order: 4
|
||||||
uri: ${FRONTEND_URI}
|
uri: ${FRONTEND_URI}
|
||||||
|
|
|
@ -26,17 +26,9 @@ spring:
|
||||||
set-status:
|
set-status:
|
||||||
original-status-header-name: Original-Status
|
original-status-header-name: Original-Status
|
||||||
routes:
|
routes:
|
||||||
- id: core-api
|
|
||||||
uri: ${CORE_API_URI}
|
|
||||||
order: 1
|
|
||||||
predicates:
|
|
||||||
- Path=/api/**
|
|
||||||
filters:
|
|
||||||
- RewritePath=/api/(?<segment>.*), /$\{segment}
|
|
||||||
- TokenRelay=
|
|
||||||
- id: statements-api
|
- id: statements-api
|
||||||
uri: ${STATEMENTS_API_URI}
|
uri: ${STATEMENTS_API_URI}
|
||||||
order: 2
|
order: 1
|
||||||
predicates:
|
predicates:
|
||||||
- Path=/api/statements/**
|
- Path=/api/statements/**
|
||||||
filters:
|
filters:
|
||||||
|
@ -44,12 +36,20 @@ spring:
|
||||||
- TokenRelay=
|
- TokenRelay=
|
||||||
- id: widgets-api
|
- id: widgets-api
|
||||||
uri: ${WIDGETS_API_URI}
|
uri: ${WIDGETS_API_URI}
|
||||||
order: 3
|
order: 2
|
||||||
predicates:
|
predicates:
|
||||||
- Path=/api/widgets/**
|
- Path=/api/widgets/**
|
||||||
filters:
|
filters:
|
||||||
- RewritePath=/api/(?<segment>.*), /$\{segment}
|
- RewritePath=/api/(?<segment>.*), /$\{segment}
|
||||||
- TokenRelay=
|
- TokenRelay=
|
||||||
|
- id: core-api
|
||||||
|
uri: ${CORE_API_URI}
|
||||||
|
order: 3
|
||||||
|
predicates:
|
||||||
|
- Path=/api/**
|
||||||
|
filters:
|
||||||
|
- RewritePath=/api/(?<segment>.*), /$\{segment}
|
||||||
|
- TokenRelay=
|
||||||
|
|
||||||
server:
|
server:
|
||||||
ssl:
|
ssl:
|
||||||
|
|
|
@ -14,7 +14,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
import org.springframework.web.filter.CommonsRequestLoggingFilter;
|
import org.springframework.web.filter.CommonsRequestLoggingFilter;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@Import(CommonSwaggerConfiguration.class)
|
@Import(CommonSecurityConfiguration.class)
|
||||||
@EnableTransactionManagement
|
|
||||||
public class SecurityConfiguration {
|
public class SecurityConfiguration {
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,14 @@ let LEV_FORMAT = new Intl.NumberFormat('bg-BG', {
|
||||||
|
|
||||||
let utils = {
|
let utils = {
|
||||||
performRequest: async (url, options) => {
|
performRequest: async (url, options) => {
|
||||||
return await fetch(url, options).then(resp => {
|
let opts = options ?? { headers: {} };
|
||||||
|
return await fetch(url, {
|
||||||
|
...opts,
|
||||||
|
headers: {
|
||||||
|
...opts.headers,
|
||||||
|
'X-Requested-With': 'XMLHttpRequest'
|
||||||
|
}
|
||||||
|
}).then(resp => {
|
||||||
if (resp.status === 401) {
|
if (resp.status === 401) {
|
||||||
window.location.replace(`${window.location.origin}/oauth2/authorization/authentik`)
|
window.location.replace(`${window.location.origin}/oauth2/authorization/authentik`)
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package dev.mvvasilev.statements.configuration;
|
package dev.mvvasilev.statements.configuration;
|
||||||
|
|
||||||
|
import dev.mvvasilev.common.configuration.CommonSecurityConfiguration;
|
||||||
import dev.mvvasilev.common.configuration.CommonSwaggerConfiguration;
|
import dev.mvvasilev.common.configuration.CommonSwaggerConfiguration;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@Import(CommonSwaggerConfiguration.class)
|
@Import(CommonSecurityConfiguration.class)
|
||||||
@EnableTransactionManagement
|
|
||||||
public class SecurityConfiguration {
|
public class SecurityConfiguration {
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package dev.mvvasilev.widgets.configurations;
|
package dev.mvvasilev.widgets.configurations;
|
||||||
|
|
||||||
|
import dev.mvvasilev.common.configuration.CommonSecurityConfiguration;
|
||||||
import dev.mvvasilev.common.configuration.CommonSwaggerConfiguration;
|
import dev.mvvasilev.common.configuration.CommonSwaggerConfiguration;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@Import(CommonSwaggerConfiguration.class)
|
@Import(CommonSecurityConfiguration.class)
|
||||||
@EnableTransactionManagement
|
|
||||||
public class SecurityConfiguration {
|
public class SecurityConfiguration {
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue