Skip to content

Commit

Permalink
Fix CSRF filter auto-configuration round 2
Browse files Browse the repository at this point in the history
  • Loading branch information
ch4mpy committed Jul 18, 2023
1 parent cbf5177 commit 896f503
Show file tree
Hide file tree
Showing 9 changed files with 55 additions and 41 deletions.
6 changes: 3 additions & 3 deletions README.MD
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
7.0.0 is a break through in usability: all 6 `spring-addons` Boot starters are merged into a single one: [`com.c4-soft.springaddons:spring-addons-starter-oidc`](https://repo1.maven.org/maven2/com/c4-soft/springaddons/spring-addons-starter-oidc/), and so are 4 of the test libs: [`com.c4-soft.springaddons:spring-addons-starter-oidc-test`](https://repo1.maven.org/maven2/com/c4-soft/springaddons/spring-addons-starter-oidc-test/). To use the test annotations without the starter, the dependency id unchanged: [`com.c4-soft.springaddons:spring-addons-oauth2-test`](https://repo1.maven.org/maven2/com/c4-soft/springaddons/spring-addons-oauth2-test/).

Please follow the [migration guide](https://github.com/ch4mpy/spring-addons/blob/master/7.0.0-migration-guide.md) to move from `6.x` to `7.0.1`. There is no urge to do so on existing projects as 6.2.x patches should be published untill the end of 2023.
Please follow the [migration guide](https://github.com/ch4mpy/spring-addons/blob/master/7.0.0-migration-guide.md) to move from `6.x` to `7.0.2`. There is no urge to do so on existing projects as 6.2.x patches should be published untill the end of 2023.

All samples and tutorials sources are migrated to latest starter and test annotations, but some READMEs might still need a refresh. Please make sure you refer to source code for up to date configuration.

Expand Down Expand Up @@ -395,7 +395,7 @@ In case your access-control uses more than just name and authorities, you'll pro
I could forget to update README before releasing, so please refer to [maven central](https://repo1.maven.org/maven2/com/c4-soft/springaddons/spring-addons/) to pick latest available release
```xml
<properties>
<springaddons.version>7.0.1</springaddons.version>
<springaddons.version>7.0.2</springaddons.version>
</properties>
<dependencies>

Expand Down Expand Up @@ -447,7 +447,7 @@ Using such libs is dead simple: just declare depedency on one of those libs and

2.0 comes with a noticeable amount of breaking changes. So lets start tracking features.

### 7.0.1
### 7.0.2
- Fix the condition to add a filter inserting CSRF protection cookie to responses

### 7.0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import org.springframework.util.StringUtils;
import org.springframework.web.util.UriComponentsBuilder;

import com.c4_soft.springaddons.security.oidc.starter.properties.OAuth2LogoutProperties;
import com.c4_soft.springaddons.security.oidc.starter.properties.SpringAddonsOidcClientProperties;
import com.c4_soft.springaddons.security.oidc.starter.properties.SpringAddonsOidcClientProperties.OAuth2LogoutProperties;

import lombok.Data;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package com.c4_soft.springaddons.security.oidc.starter.properties;

import org.springframework.boot.context.properties.ConfigurationProperties;

import lombok.Data;

@ConfigurationProperties
@Data
public class CorsProperties {
/**
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.net.URI;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
import org.springframework.security.oauth2.core.oidc.StandardClaimNames;

Expand All @@ -14,6 +15,7 @@
*
* @author Jerome Wacongne ch4mp&#64;c4-soft.com
*/
@ConfigurationProperties
@Data
public class OpenidProviderProperties {
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.c4_soft.springaddons.security.oidc.starter.properties;

import org.springframework.boot.context.properties.ConfigurationProperties;

import com.c4_soft.springaddons.security.oidc.starter.ConfigurableClaimSetAuthoritiesConverter;

import lombok.AllArgsConstructor;
Expand All @@ -11,6 +13,7 @@
*
* @author ch4mp
*/
@ConfigurationProperties
@Data
@NoArgsConstructor
@AllArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.Map;
import java.util.Optional;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
import org.springframework.web.util.UriComponentsBuilder;

Expand All @@ -18,6 +19,7 @@
*
* @author Jerome Wacongne ch4mp&#64;c4-soft.com
*/
@ConfigurationProperties
@Data
public class SpringAddonsOidcClientProperties {

Expand Down Expand Up @@ -93,11 +95,42 @@ public class SpringAddonsOidcClientProperties {
*/
private Map<String, RequestParam[]> authorizationRequestParams = new HashMap<>();

/**
* Logout properties for OpenID Providers which do not implement the RP-Initiated Logout spec
*
* @author Jerome Wacongne ch4mp&#64;c4-soft.com
*/
@ConfigurationProperties
@Data
public static class OAuth2LogoutProperties {

/**
* URI on the authorization server where to redirect the user for logout
*/
private URI uri;

/**
* request param name for client-id
*/
private Optional<String> clientIdRequestParam = Optional.empty();

/**
* request param name for post-logout redirect URI (where the user should be redirected after his session is closed on the authorization server)
*/
private Optional<String> postLogoutUriRequestParam = Optional.empty();

/**
* request param name for setting an ID-Token hint
*/
private Optional<String> idTokenHintRequestParam = Optional.empty();
}

/**
* Request parameter
*
* @author Jerome Wacongne ch4mp&#64;c4-soft.com
*/
@ConfigurationProperties
@Data
public static class RequestParam {
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.c4_soft.springaddons.security.oidc.starter.properties;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

import lombok.Data;
Expand All @@ -11,6 +12,7 @@
*
* @author Jerome Wacongne ch4mp&#64;c4-soft.com
*/
@ConfigurationProperties
@Data
public class SpringAddonsOidcResourceServerProperties {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,19 @@ public CookieCsrfCondition() {
}

@ConditionalOnProperty(name = "com.c4-soft.springaddons.oidc.client.csrf", havingValue = "cookie-accessible-from-js")
static class CookieAccessibleToJsCondition {
static class ClientCookieAccessibleFromJsCondition {
}

@ConditionalOnProperty(name = "com.c4-soft.springaddons.oidc.client.csrf", havingValue = "cookie-http-only")
static class clientHttpOnlyCookieCondition {
}

@ConditionalOnProperty(name = "com.c4-soft.springaddons.oidc.resourceserver.csrf", havingValue = "cookie-http-only")
static class HttpOnlyCookieCondition {
static class ResourceServerHttpOnlyCookieCondition {
}

@ConditionalOnProperty(name = "com.c4-soft.springaddons.oidc.resourceserver.csrf", havingValue = "cookie-accessible-from-js")
static class ResourceServerCookieAccessibleFromJsCondition {
}

}

0 comments on commit 896f503

Please sign in to comment.