Skip to content

Commit

Permalink
feat: add OIDC protection to rest API with spring-boot help
Browse files Browse the repository at this point in the history
  • Loading branch information
jgribonvald committed Mar 10, 2020
1 parent b6b9a9c commit ae4c811
Show file tree
Hide file tree
Showing 28 changed files with 388 additions and 304 deletions.
86 changes: 77 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

<name>Change etablissement Portlet</name>
<description>Change etablissement Portlet.</description>
<version>2.2.0-SNAPSHOT</version>
<version>3.0.0-SNAPSHOT</version>
<inceptionYear>2012</inceptionYear>

<scm>
Expand Down Expand Up @@ -69,6 +69,7 @@
<json-path.version>2.4.0</json-path.version>
<resource-server.version>1.3.1</resource-server.version>
<spring.version>4.3.26.RELEASE</spring.version>
<spring-boot.version>1.5.22.RELEASE</spring-boot.version>
<spring-ldap.version>2.3.2.RELEASE</spring-ldap.version>
<slf4j.version>1.7.25</slf4j.version>
<logback.version>1.2.3</logback.version>
Expand Down Expand Up @@ -206,6 +207,16 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jasig.portal</groupId>
<artifactId>uPortal-soffit-renderer</artifactId>
<version>${uportal-libs.version}</version>
</dependency>
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt-spring31</artifactId>
<version>1.9.3</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
Expand All @@ -217,6 +228,16 @@
<version>1.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
Expand All @@ -234,24 +255,34 @@
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.14.RELEASE</version>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc-portlet</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc-portlet</artifactId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.14.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.2.14.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap-core</artifactId>
Expand Down Expand Up @@ -330,6 +361,10 @@
<groupId>org.jasig.portal</groupId>
<artifactId>uPortal-spring</artifactId>
</dependency>
<dependency>
<groupId>org.jasig.portal</groupId>
<artifactId>uPortal-soffit-renderer</artifactId>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
Expand All @@ -345,6 +380,14 @@
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
Expand All @@ -354,13 +397,29 @@
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc-portlet</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ldap</groupId>
<artifactId>spring-ldap-core</artifactId>
Expand Down Expand Up @@ -426,6 +485,15 @@
<build>
<finalName>change-etablissement</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<mainClass>org.esco.portlet.changeetab.ChangeEtablissementApplication</mainClass>
</configuration>
</plugin>

<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.esco.portlet.changeetab;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;

@SpringBootApplication
@ImportResource(locations = {"classpath:context/*.xml"})
public class ChangeEtablissementApplication {

@Autowired
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer;

public static void main(String[] args) {
SpringApplication.run(ChangeEtablissementApplication.class, args);
}

}
14 changes: 14 additions & 0 deletions src/main/java/org/esco/portlet/changeetab/ServletInitializer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package org.esco.portlet.changeetab;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ChangeEtablissementApplication.class);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -28,23 +28,20 @@
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;

import org.esco.portlet.changeetab.dao.IStructureDao;
import org.esco.portlet.changeetab.dao.bean.IStructureFormatter;
import org.esco.portlet.changeetab.model.Structure;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ldap.core.LdapTemplate;
import org.springframework.ldap.filter.AndFilter;
import org.springframework.ldap.filter.EqualsFilter;
import org.springframework.ldap.filter.HardcodedFilter;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

/**
* @author GIP RECIA 2013 - Maxime BOSSARD.
*
*/
@Service
//@Service
@Data
@Slf4j
@NoArgsConstructor
Expand All @@ -67,10 +64,10 @@ public class LdapStructureDao implements IStructureDao/*, InitializingBean*/{
@NonNull
private Set<String> classValueStructUAI;

@Autowired
//@Autowired
private LdapTemplate ldapTemplate;

@Autowired(required = false)
//@Autowired(required = false)
private List<IStructureFormatter> structureFormatters;

/** Structure Ldap base. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,21 @@
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;

import org.esco.portlet.changeetab.dao.IUserDao;
import org.esco.portlet.changeetab.model.Structure;
import org.esco.portlet.changeetab.model.UniteAdministrativeImmatriculee;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ldap.core.DistinguishedName;
import org.springframework.ldap.core.LdapTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

/**
* @author GIP RECIA 2013 - Maxime BOSSARD.
*
*/
@Service
//@Service
@Data
@NoArgsConstructor
public class LdapUserDao implements IUserDao, InitializingBean {
Expand All @@ -56,7 +53,7 @@ public class LdapUserDao implements IUserDao, InitializingBean {
@NonNull
private String userIdTemplate = "%u";

@Autowired
//@Autowired
private LdapTemplate ldapTemplate;

/** User base Ldap dn. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,17 @@
import java.util.Map;

import lombok.extern.slf4j.Slf4j;

import org.apache.commons.collections.map.HashedMap;
import org.esco.portlet.changeetab.dao.IStructureDao;
import org.esco.portlet.changeetab.model.Structure;
import org.esco.portlet.changeetab.model.UniteAdministrativeImmatriculee;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Service;

/**
* @author GIP RECIA 2013 - Maxime BOSSARD.
*
*/
@Service
//@Service
@Slf4j
public class MockStructureDao implements IStructureDao, InitializingBean {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,18 @@
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;

import org.esco.portlet.changeetab.dao.IUserDao;
import org.esco.portlet.changeetab.model.Structure;
import org.esco.portlet.changeetab.model.UniteAdministrativeImmatriculee;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.ldap.core.DistinguishedName;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

/**
* @author GIP RECIA 2013 - Maxime BOSSARD.
*
*/
@Service
//@Service
@Data
@Slf4j
@NoArgsConstructor
Expand Down
Loading

0 comments on commit ae4c811

Please sign in to comment.