Skip to content

Commit

Permalink
feat: first code refactor for security
Browse files Browse the repository at this point in the history
  • Loading branch information
Nolife999 committed Jan 22, 2024
1 parent f7c78f6 commit 3a14656
Show file tree
Hide file tree
Showing 19 changed files with 152 additions and 295 deletions.
21 changes: 0 additions & 21 deletions arc-utils/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,6 @@
</build>

<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
Expand All @@ -60,21 +54,6 @@
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>


<!-- oauth2 Keycloak -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-jose</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-resource-server</artifactId>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package fr.insee.arc.utils.webutils;

import org.springframework.beans.factory.annotation.Value;

public class CheckKeycloak {

@Value("${fr.insee.keycloak.realm}")
private String keycloakRealm;

public boolean isKeycloakActive()
{
return keycloakRealm!=null;
}

protected void setKeycloak(String keycloakRealm) {
this.keycloakRealm = keycloakRealm;
}

}
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
package fr.insee.arc.utils.webutils;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.*;

import org.junit.Test;

public class WebSecurityTest {
public class CheckKeycloakTest {

@Test
public void isKeycloakActiveFalse()
{
WebSecurity w = new WebSecurity();
CheckKeycloak w = new CheckKeycloak();
assertEquals(false, w.isKeycloakActive());
}

@Test
public void isKeycloakActiveTrue()
{
WebSecurity w = new WebSecurity();
w.setKeycloak("realm", "url", "arc", "credentials");
CheckKeycloak w = new CheckKeycloak();
w.setKeycloak("realm");
assertEquals(true, w.isKeycloakActive());
}

}
53 changes: 11 additions & 42 deletions arc-web/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>[1.4,)</version>
<version>${project.commons.fileupload.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
Expand All @@ -90,18 +90,6 @@
</exclusions>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${project.spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${project.spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
Expand All @@ -114,34 +102,30 @@
</exclusions>
</dependency>

<!-- web security libs -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>

<!-- Keycloak oauth2 client -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
<version>2.8.0</version>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-jose</artifactId>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<!-- jakarta -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.1.0-M1</version>
<version>${project.jakarta.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand All @@ -159,21 +143,6 @@
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
<version>3.0.0</version>
</dependency>



<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${project.jackson.version}</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${project.jackson.version}</version>
</dependency>

</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fr.insee.arc.utils.webutils;
package fr.insee.arc.web;

import java.util.HashSet;
import java.util.List;
Expand All @@ -14,8 +14,8 @@
import org.springframework.security.oauth2.core.oidc.OidcUserInfo;
import org.springframework.security.oauth2.core.oidc.user.OidcUserAuthority;

public class WebSecurity {

public class Oauth2ClientForKeycloak {
@Value("${fr.insee.keycloak.realm}")
private String keycloakRealm;

Expand All @@ -28,15 +28,6 @@ public class WebSecurity {
@Value("${fr.insee.keycloak.credentials.secret}")
private String keycloakCredential;


protected void setKeycloak(String keycloakRealm, String keycloakServer, String keycloakResource,
String keycloakCredential) {
this.keycloakRealm = keycloakRealm;
this.keycloakServer = keycloakServer;
this.keycloakResource = keycloakResource;
this.keycloakCredential = keycloakCredential;
}

protected ClientRegistration keycloakClientRegistration(ClientAuthenticationMethod method) {

String realmUri = keycloakServer + "/realms/" + keycloakRealm;
Expand All @@ -59,31 +50,15 @@ protected ClientRegistration keycloakClientRegistration(ClientAuthenticationMeth
.build();
}


protected boolean isKeycloakActive()
{
return keycloakRealm!=null;
}

protected GrantedAuthoritiesMapper userAuthoritiesMapper() {
return (authorities) -> {

System.out.println("§§§§§§§§§§§§");
System.out.println("authorities check");
System.out.println(authorities);

Set<GrantedAuthority> mappedAuthorities = new HashSet<>();

authorities.forEach(
authority -> {
if (authority instanceof OidcUserAuthority) {
OidcUserAuthority oidcUserAuthority = (OidcUserAuthority) authority;
OidcUserInfo userInfo = oidcUserAuthority.getUserInfo();

System.out.println("§§§§§§§§§§§§");
System.out.println(oidcUserAuthority);
System.out.println(userInfo.getFullName());
System.out.println(userInfo.getClaims());

List<String> roles = userInfo.getClaimAsStringList("roles");
if (roles==null)
Expand Down Expand Up @@ -136,5 +111,4 @@ public void setKeycloakCredential(String keycloakCredential) {
this.keycloakCredential = keycloakCredential;
}


}
118 changes: 0 additions & 118 deletions arc-web/src/main/java/fr/insee/arc/web/SecurityConfiguration.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
@Configuration
@ImportResource("classpath:applicationContext.xml")
@ComponentScan(basePackages = {"fr.insee.arc.web", "fr.insee.arc.core", "fr.insee.arc.utils"})
public class WebConfig implements WebMvcConfigurer {
public class WebConfiguration implements WebMvcConfigurer {

@Bean
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer(ConfigurableEnvironment env) throws IOException {
Expand Down
4 changes: 2 additions & 2 deletions arc-web/src/main/java/fr/insee/arc/web/WebInitializer.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ public class WebInitializer extends AbstractAnnotationConfigDispatcherServletIni

@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { WebConfig.class };
return new Class<?>[] { WebConfiguration.class };
}

@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] { SecurityConfiguration.class };
return new Class<?>[] { WebSecurityConfiguration.class };
}

@Override
Expand Down
Loading

0 comments on commit 3a14656

Please sign in to comment.