Add plugin for maven spring boot run. Add health check for properties

This commit is contained in:
Konstantinos Triantafyllou 2021-11-25 00:20:57 +02:00
parent 68d509eab9
commit 58d40a97f9
6 changed files with 73 additions and 11 deletions

14
pom.xml
View File

@ -82,6 +82,20 @@
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>eu.dnetlib.loginservice.LoginServiceApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>

View File

@ -1,17 +1,45 @@
package eu.dnetlib.loginservice.controllers;
import eu.dnetlib.loginservice.properties.Properties;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
public class HealthController {
private final Logger log = Logger.getLogger(this.getClass());
private final Properties properties;
@Autowired
public HealthController(Properties properties) {
this.properties = properties;
}
@RequestMapping(value = {"", "/health_check"}, method = RequestMethod.GET)
public String hello() {
log.debug("Hello from Login service!");
return "Hello from Login service!";
}
@PreAuthorize("hasAnyAuthority('PORTAL_ADMINISTRATOR')")
@RequestMapping(value = "/health_check/advanced", method = RequestMethod.GET)
public Map<String, String> checkEverything() {
Map<String, String> response = new HashMap<>();
response.put("authentication.domain", properties.getDomain());
response.put("authentication.redis.host", properties.getRedis().getHost());
response.put("authentication.oidc.id", properties.getOidc().getId());
response.put("authentication.oidc.secret", properties.getOidc().getSecret());
response.put("authentication.oidc.issuer", properties.getOidc().getIssuer());
response.put("authentication.oidc.home", properties.getOidc().getHome());
response.put("authentication.oidc.logout", properties.getOidc().getLogout());
response.put("authentication.oidc.scope", properties.getOidc().getScope());
response.put("authentication.redirect", properties.getRedirect());
return response;
}
}

View File

@ -1,22 +1,25 @@
package eu.dnetlib.loginservice.controllers;
import eu.dnetlib.loginservice.entities.User;
import eu.dnetlib.loginservice.exception.ResourceNotFoundException;
import org.mitre.openid.connect.model.OIDCAuthenticationToken;
import eu.dnetlib.loginservice.services.UserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
private final UserInfoService userInfoService;
@Autowired
public UserController(UserInfoService userInfoService) {
this.userInfoService = userInfoService;
}
@RequestMapping(value = "/userInfo", method = RequestMethod.GET)
public ResponseEntity<User> getUserInfo(Authentication authentication) {
if(authentication instanceof OIDCAuthenticationToken) {
return ResponseEntity.ok(new User((OIDCAuthenticationToken) authentication));
}
throw new ResourceNotFoundException("No Session has been found");
public ResponseEntity<User> getUserInfo() {
return ResponseEntity.ok(userInfoService.getUserInfo());
}
}

View File

@ -4,7 +4,6 @@ import eu.dnetlib.loginservice.properties.Properties;
import eu.dnetlib.loginservice.security.oidc.OpenAIREAuthoritiesMapper;
import eu.dnetlib.loginservice.utils.EntryPoint;
import eu.dnetlib.loginservice.utils.ScopeReader;
import org.mitre.openid.connect.client.OIDCAuthenticationFilter;
import org.mitre.openid.connect.client.OIDCAuthenticationProvider;
import org.mitre.openid.connect.client.service.impl.PlainAuthRequestUrlBuilder;
import org.mitre.openid.connect.client.service.impl.StaticAuthRequestOptionsService;
@ -13,7 +12,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler;
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint;
@Configuration
public class Primitives {

View File

@ -1,7 +1,6 @@
package eu.dnetlib.loginservice.security.initiliazers;
import eu.dnetlib.loginservice.properties.Properties;
import eu.dnetlib.loginservice.utils.ScopeReader;
import org.mitre.oauth2.model.RegisteredClient;
import org.mitre.openid.connect.client.service.impl.StaticClientConfigurationService;
import org.mitre.openid.connect.client.service.impl.StaticServerConfigurationService;

View File

@ -0,0 +1,20 @@
package eu.dnetlib.loginservice.services;
import eu.dnetlib.loginservice.entities.User;
import eu.dnetlib.loginservice.exception.ResourceNotFoundException;
import org.mitre.openid.connect.model.OIDCAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
@Service
public class UserInfoService {
public User getUserInfo() throws ResourceNotFoundException {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if(authentication instanceof OIDCAuthenticationToken) {
return new User((OIDCAuthenticationToken) authentication);
}
throw new ResourceNotFoundException("No Session has been found");
}
}